<分区>
我在面试中被问到这个问题。
How you can create your own notify() method ?
我告诉过这是一个原生
方法,不能被覆盖。
但她对这个答案并不满意。
谁能解释一下?
<分区>
我在面试中被问到这个问题。
How you can create your own notify() method ?
我告诉过这是一个原生
方法,不能被覆盖。
但她对这个答案并不满意。
谁能解释一下?
最佳答案
我猜面试官想要一个等同于等待/通知机制的 java 实现,而不直接使用 Object.wait() 和 Object.notify()。
例如,可以使用以下任何高级同步机制来模拟等待/通知:
但是请注意,语义可能与等待/通知略有不同。与标准的等待/通知不同,例如使用阻塞队列,您的优势在于即使在收到通知时它没有等待,服务员线程也会捕获“通知”。
以下是使用 SynchronousQueue 的一个非常简单的实现:
public class WaitNotify {
private final Object ITEM = new Object();
private final SynchronousQueue<Object> q = new SynchronousQueue<Object>();
public void myNotify() {
q.offer(ITEM);
}
public void myWait() throws InterruptedException {
q.take();
}
}
关于java - 我们如何在对象中创建 `notify()` 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476008/