码迷,mamicode.com
首页 > 编程语言 > 详细

java多线程---停止线程

时间:2018-10-08 23:10:57      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:over   throw   span   stat   java多线程   jdk   static   rup   public   

 @Deprecated
    public final void stop() 

  jdk源码中Thread的stop()方法已经被弃用了。那么怎么停止线程的呢?

thread.interrupt();这就是需要用到的方法

一般建议使用抛异常的方法来实现停止线程。因为在catch块里可对异常信息进行相关处理。
如下:
public class StopThread extends Thread{

    /**
     * 停止一个线程可用Thread.stop(),但这个方法是不安全的,被弃用的。别用
     * 还可以用Thread.interrupt()
     */
    @Override
    public void run() {
        /**
         * 在沉睡中停止:如果线程在睡眠中被interrupt,将抛出异常java.lang.InterruptedException: sleep interrupted
         */
      /*try {
            Thread.sleep(20000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }*/

        /**
         * 使用“异常法”停止线程
         */
        try {
            for (int i=0;i<500000;i++){
               if (this.isInterrupted()) {
                   System.out.println("停止状态");
                   throw new InterruptedException();
               }
               System.out.println("i=" + (i + 1));
           }
            System.out.println("===for end===");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    /**
     * 测试线程是否是中断状态
     * isInterrupted  不清除状态标志
     * interrupted    清除状态标志
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        StopThread thread = new StopThread();
        thread.start();
        Thread.sleep(1000);
        thread.interrupt();
//        System.out.println("interrupted===================="+thread.interrupted());
//        System.out.println("interrupted===================="+thread.interrupted());
//        System.out.println("isInterrupted===================="+thread.isInterrupted());
//        System.out.println("isInterrupted===================="+thread.isInterrupted());
    }

}

  

java多线程---停止线程

标签:over   throw   span   stat   java多线程   jdk   static   rup   public   

原文地址:https://www.cnblogs.com/tangquanbin/p/9757560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!