采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,使用Thread类的join()阻塞当前线程以等待子线程处理完毕,您使用了t.join()来阻塞当前线程,但为什么没有去显示唤醒,而是等待子线程处理完毕?(但是您在讲线程状态中,讲道没有设置Timeout参数的Thread.join()方法会进入无限期等待,需要被显示唤醒、如下图红线部分),期待您的解答,谢谢。
同学好,可能这里说的显式让同学产生误解,昨天我在回答里说了join的源码,其实也是判断被调用的线程的状态,也就是子线程的状态,如果子线程没有执行完毕,那么就会一直调用wait(0)来挂起自己并出让锁,而当子线程执行完成(即run逻辑执行完毕后),此时相当于是显式停止了(因为run函数执行完毕后,相当于是显式将自己的状态置为非alive的了),因此主线程就继续执行了,所以说没有参数的就是显式停止的。
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.3k 15
1.5k 14
1.3k 14