中断机制之通过volatile实现线程中断停止

如何停止中断运行中的线程?

首先,一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运,所以,Thread.stop,Thread.suspend,Thread.resume都已经被废弃了

volatile实现线程中断演示

通过修改共享变量的方式 来达到通知的目的 从而使目的线程中断

package com.kwfruit.thread.interruptdemo;

import com.kwfruit.thread.common.SleepUtil;

import java.util.concurrent.TimeUnit;

public class InterruptDemo {

    static volatile boolean isStop = false;

    public static void main(String[] args) {

        new Thread(()->{

            while (true){

                if(isStop){
                    System.out.println(Thread.currentThread().getName()+"\t isStop被修改为true 程序停止");
                    break;
                }

                System.out.println("t1 --------hello volatile");

            }


        },"t1").start();

        try {
            TimeUnit.MICROSECONDS.sleep(2);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        new Thread(()->{

            isStop = true;


        },"t2").start();



    }


}

本文作者:KwFruit

本文链接:https://www.cnblogs.com/mangoubiubiu/p/17977900

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   KwFruit  阅读(36)  评论(0编辑  收藏  举报
历史上的今天:
2021-01-21 JSR 303 表单校验(一)
2021-01-21 element ui 表单校验(vue)
2021-01-21 layui表单校验
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起