一个线程可以直接让另一个线程等待吗?

时间:2015-07-29 06:05:29

标签: java multithreading

在Java中,是否有可能一个线程通过调用wait()或者没有某种信号来导致另一个线程等待?我实际上并没有尝试实现或实现某些实际目标,例如在帖子How to synchronize shared data between threads by using pause then resume or alternatives中。这更像是对Java线程中是否存在这种可能性的理论探索。

2 个答案:

答案 0 :(得分:2)

不,您无法使用普通Java安全可靠地暂停线程。线程可以自己暂停,但不会互相暂停。

线程确实有suspendresume方法,但事实证明,它们并不安全,很容易导致整个程序冻结(死锁)。你真的不想使用它们。

答案 1 :(得分:1)

没有。通过调用wait()方法,一个线程无法使另一个线程等待/暂停。

锁定机制(同步)是让其他线程等到执行获取锁的线程完成的最安全的方法。