t.join()
阻塞调用此方法的线程进入
timed_waiting
直到线程
t
执行完成后,此线程再继续竞争时间片去执行
还有很多方法都可以实现这个效果,其实它的本质就是保证同一时刻只有一个线程执行临界区的代码,从而保证多线程执行的顺序性,只不过现在要求的是上一个执行者能够指定下一个执行者而已,因此,我们还可以考虑使用 Condition
来配合
ReentrantLock
使用,通过
Condition
的
await()
和
signal()方法来实现指定一个环境变量的等待区的线程唤醒。这样就可以选择性地唤醒指定的线程。
1. join()2. wait() + interupt()3. reentrantLock 的 Condition 的 await() + signal()