老师线程A,B启动顺序不定

来源:8-6 sleep和wait的区别

厥~~~

2019-10-14

为啥在中间加入一段try catch
Thread.sleep(20)这样就能保证线程B先启动?
如果不加Thread.sleep(20)是否有可能线程B先启动,线程A再启动。

写回答

1回答

翔仔

2019-10-15

同学好,在A和B间加入sleep逻辑后,主要是main线程执行的时候sleep,此时由于A已经执行到start而B没有执行到start,所以A先于B执行。。

0
4
翔仔
回复
慕姐9575131
同学好,这里有三个线程,主线程,A线程和B线程,首先,主线程执行的时候,先执行了A.start()也就是创建了A线程,并让其开始处于执行状态,此时加了sleep的话,就能让主线程休眠,而A线程继续执行,休眠完成后再调用B.start()也就是才创建了B线程,并让其开始处于执行状态,这样就能保证A是先于B执行的。否则你如果不sleep,虽然A比B先创建出来,但是由于主线程没休眠,执行很快,相当于几乎同时创建了A和B,所以执行顺序就不一定能保证了
2020-07-20
共4条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程