线程中断与stop的区别

参考答案

线程中断与stop的区别:

  • public final void stop(): 让线程停止,方法过失了,但还可以用。
  • public void interrupt(): 中断线程,并抛出InterruptedException,程序正常结束。

线程中断与stop的实例:

public class ThreadSleepDemp {
    public static void main(String[] args) {

        ThreadStop ts = new ThreadStop();
        ts.start();

        //超过3s ,线程停止
        try {
            Thread.sleep(3000);
            ts.stop();
            //ts.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

public class ThreadStop extends Thread{
    @Override
    public void run(){
        System.out.println("开始执行:" + new Date());

        //我要休息5s!!
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            System.out.println("线程被终止了!");
        }
        System.out.println("执行结束:" + new Date());
    }
}

在上述代码中,分别使用stop和interrupt方法结果比较。

stop方法:

开始执行:Fri Oct 30 11:09:42 GMT+08:00 2020

interrupt方法:

开始执行:Fri Oct 30 11:18:49 GMT+08:00 2020 线程被终止了!

执行结束:Fri Oct 30 11:18:52 GMT+08:00 2020

以上,是Java面试题【线程中断与stop的区别】的参考答案。

 

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧