zoukankan      html  css  js  c++  java
  • 使用interrupt()方法来中断线程并使用 isInterrupted() 方法来判断线程是否已中断:

    /**
     * @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() 方法
    

      

  • 相关阅读:
    IO流
    myEclipse的使用
    单例模式
    日期的使用
    String类的常用方法
    break、continue和return的区别
    包装类和随机数
    enum类的使用
    Java基础概念性的知识总结
    汇编中的函数调用与递归
  • 原文地址:https://www.cnblogs.com/Andrew520/p/12097645.html
Copyright © 2011-2022 走看看