java线程中join()方法问题
提问:当有三个线程a,b,c时,在a线程中调用b线程的join()方法,经过大量测试后发现c线程先运行,运行结果为c→b→a,这是为什么? join 源码中其实是调用了 waitjoin的效果就是使当前线程 放弃资源让给别的线程,然后等待某线程执行完再结束 (join会释放锁对象)
既然你在a里面调用b的join,那么a肯定最后执行完( 因为方法的调用是栈 ),b.join释放了锁对象,c就开始执行
所以是c-b-a 感觉二楼说的非常对
页:
[1]