deng_o3o 发表于 2022-1-29 21:41:18

java线程中join()方法问题

提问:当有三个线程a,b,c时,在a线程中调用b线程的join()方法,经过大量测试后发现c线程先运行,运行结果为c→b→a,这是为什么?

翼是孤独 发表于 2022-1-29 23:46:47

join 源码中其实是调用了 wait
join的效果就是使当前线程 放弃资源让给别的线程,然后等待某线程执行完再结束 (join会释放锁对象)

既然你在a里面调用b的join,那么a肯定最后执行完( 因为方法的调用是栈 ),b.join释放了锁对象,c就开始执行
所以是c-b-a

小甲鱼的铁粉 发表于 2022-1-30 09:51:12

感觉二楼说的非常对
页: [1]
查看完整版本: java线程中join()方法问题