相关疑难解决方法(0)

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

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

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

java concurrency multithreading wait

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

是等待(1)在非阻塞时(true) - 循环比使用wait()和notify()更有效吗?

难道一个while(true)共同的Java循环与wait(1)利用更多或更少的资源比用封闭循环wait()notify()

CPU内核是否允许一些特殊(硬件)实现wait(1)?如果是,使用这种非阻塞循环时是否有任何限制?

一个例子:

while(true){
    wait(1);
    //do the job here...
}
Run Code Online (Sandbox Code Playgroud)

(只是一个注意事项:如果没有wait(1)一个核心将在while(true)循环中100%激进......)

java loops nonblocking notify wait

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

标签 统计

java ×2

wait ×2

concurrency ×1

loops ×1

multithreading ×1

nonblocking ×1

notify ×1