【发布时间】:2013-06-06 14:24:24
【问题描述】:
从semaphore tutorial 中摘录说:
使用这样的信号量可以避免错过信号。您将调用 take() 而不是 notify() 和 release() 而不是 wait()。如果对 take() 的调用发生在对 release() 的调用之前,则调用 release() 的线程仍然知道调用了 take(),因为信号内部存储在信号变量中。 wait() 和 notify() 不是这种情况。
我们不能单独使用等待和通知来避免丢失的信号吗?
【问题讨论】:
-
否,例如,如果
notify()被调用之前wait()
标签: java multithreading semaphore