正在回答 回答被采纳积分+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方法的。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星