[英]build wait()/notify() mechanism only with synchronized blocks
是否可以仅使用Java中的同步块来建立等待/通知机制? 这意味着要使用outwait()/ notify()方法创建此机制,但要使用同步块,静态字段,易失修饰符。
当然可以,但是由于迫不及待,您将被迫忙于循环:
public class Signal {
private boolean signal;
public void waitForSignal() {
while (true)
sychronized (this) {
if (signal) {
signal = false;
break;
}
}
}
}
public synchronized void notifyWithSignal() {
signal = true;
}
}
粗略但基本上是等待/通知的内容。 只有它不循环等待,而是使用OS将CPU分配给另一个线程,直到信号变为真为止。
可以通过将“信号”声明为易失性并删除同步块来完成相同的操作。 或使用AtomicBoolean作为信号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.