多线程-优雅停止

2019-03-02  本文已影响0人  QQ_33e9

思路:使用interrupt中断线程,使用isInterrupted判断是否被中断,如果true则break停止运行。

public class MyThread extends Thread{

        public  void run() {

            int i = 1;

            while(true) {

                System.out.println(i++);

                if(this.isInterrupted()) {

                    System.out.println(this.getName() + "线程被中断,停止运行");

                    break;

                }

            }

        }

}

public class Main{

    public static void main(String[] args) throws InterruptedException {

        Thread t = new MyThread();

        t.start();

        Thread.sleep(100);

        t.interrupt();

    }

}

isInterrupted():非静态方法,判断是否中断,不清除打断标识。

interrupted():静态方法,判断是否中断,清除打断标识。

上一篇下一篇

猜你喜欢

热点阅读