相关疑难解决方法(0)

为什么wait()始终处于同步块中

我们都知道,为了调用Object.wait(),这个调用必须放在synchronized块中,否则IllegalMonitorStateException抛出一个.但是这个限制的原因是什么?我知道wait()释放监视器,但为什么我们需要通过使特定块同步显式获取监视器,然后通过调用释放监视器wait()

如果可以wait()在同步块之外调用,保留它的语义 - 暂停调用程序线程,可能造成的损害是什么?

java concurrency multithreading wait

250
推荐指数
3
解决办法
13万
查看次数

Java:wait()从synchronized块释放锁定

我的印象是wait()释放所有锁,但我发现这篇帖子说的

"在同步方法中调用wait是一种获取内部锁的简单方法"

请澄清我有点困惑.

http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html

java concurrency multithreading locking wait

57
推荐指数
3
解决办法
4万
查看次数

标签 统计

concurrency ×2

java ×2

multithreading ×2

wait ×2

locking ×1