猿问

java多线程中,sleep和interrupt方法结合停止线程时,两种情况?

第一种:
线程类

测试类

https://img1.mukewang.com/5b9b1ca90001ef0e02780310.jpg

console结果:

https://img3.mukewang.com/5b9b1cba0001291103560161.jpg

第二种:线程类不变,测试类注释sleep方法

https://img1.mukewang.com/5b9b1cc700015b7e02880312.jpg

console结果:

https://img3.mukewang.com/5b9b1cd40001981f03290159.jpg

想问下:
为什么两次结果“在沉睡中被停止,进入try!false”和“在沉睡中被停止,进入try!true”会不一样?


猛跑小猪
浏览 952回答 1
1回答

临摹微笑

主线程和子线程是独立运行的,有sleep(100)的这个,在这100ms中子线程已经运行过了,进入了sleep(200000),而没有这100ms,主线程抢在了子线程的前面运行了mt.interrupt();
随时随地看视频慕课网APP

相关分类

Java
我要回答