/**
 * @description
 **/
public class InterruptTest2 implements Runnable {

    public static void main(String[] args) {
        InterruptTest2 test = new InterruptTest2();
        Thread t = new Thread(test);
        t.start();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("in main() - 中断其他线程");
        t.interrupt();
        System.out.println("in main() - 离开");
    }

    @Override
    public void run() {
        System.out.println("");
        try {
            System.out.println("in run() - 将运行 work2() 方法");
            work2();
            System.out.println("in run() - 从 work2() 方法回来");
        } catch (InterruptedException e) {
            System.out.println("in run() - 中断 work2() 方法");
            return;
        }
        System.out.println("in run() - 休眠后执行");
        System.out.println("in run() - 正常离开");
    }

    public void work2() throws InterruptedException {
        while (true) {
            if (Thread.currentThread().isInterrupted()) {
                System.out.println("C isInterrupted()=" + Thread.currentThread().isInterrupted());
                Thread.sleep(2000);
                System.out.println("D isInterrupted()=" + Thread.currentThread().isInterrupted());
            }
        }
    }
}

  

in run() - 将运行 work2() 方法
in main() - 中断其他线程
in main() - 离开
C isInterrupted()=true
in run() - 中断 work2() 方法

  

相关文章:

  • 2021-11-26
  • 2021-07-22
  • 2022-12-23
  • 2022-12-23
  • 2021-07-22
  • 2021-12-03
猜你喜欢
  • 2022-01-19
  • 2021-12-06
  • 2021-12-12
  • 2021-11-03
  • 2021-05-20
  • 2021-10-04
  • 2021-10-11
相关资源
相似解决方案