相关疑难解决方法(0)

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

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

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

java concurrency multithreading wait

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

混淆使用Java中的synchronized:模式还是反模式?

我正在对我不拥有的Java产品进行代码审查.我不是Java专家,但我强烈怀疑这是毫无意义的,并且表明对同步如何工作的基本误解.

synchronized (this) {
    this.notify();
}
Run Code Online (Sandbox Code Playgroud)

但我错了,因为Java不是我的主要操场.也许有这样做的原因.如果你可以告诉我开发人员的想法,我将不胜感激.

java multithreading synchronization synchronized

9
推荐指数
1
解决办法
935
查看次数