你好,请问stop()方法已经不推荐使用了?

你好,请问stop()方法已经不推荐使用了?

那么终止程序用什么方法呢?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小班 2020-07-09 12:00:23

同学你好,1、stop方法被弃用的原因:

    调用 stop() 方法会立刻停止 run() 方法中剩余的全部工作,包括在 catch 或 finally 语句中的,并抛出ThreadDeath异常(通常情况下此异常不需要显示的捕获),因此可能会导致一些清理性的工作的得不到完成,如文件,数据库等的关闭。

    调用 stop() 方法会立即释放该线程所持有的所有的锁,可能导致数据得不到同步,出现数据不一致的问题。

所以在后来的使用中,stop方法被弃用。

    2、使用 interrupt 方法中断线程,比如:

public class InterruptThread1 extends Thread{

    public static void main(String[] args) {
        try {
            InterruptThread1 t = new InterruptThread1();
            t.start();
            Thread.sleep(200);
            t.interrupt();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void run() {
        super.run();
        for(int i = 0; i <= 200000; i++) {
            System.out.println("i=" + i);
        }
    }
    
}

stop方法只是在执行过程中,可能会有安全问题,并不是不能使用,现阶段同学还是可以使用stop方法的。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师