Я осуществляю синхронизацию монитора. Мне было интересно, как работает реализация нескольких переменных условий. Таким образом, переменная condition имеет метод wait(), который помещает его в очередь ожидания для определенного блокировки, привязанного к этой переменной условия. Итак, если у меня есть несколько переменных условия, каждый вызов ожидания создает свою собственную отдельную очередь ожидания? Для, например, если у меня есть:Синхронизация монитора: реализация нескольких переменных условия
lock = Lock()
A = Condition(lock)
B = Condition(lock)
C = Condition(lock)
def foo:
with lock:
while true:
A.wait()
def bar:
with lock:
while true:
B.wait()
def notifyA
with lock:
A.notifyAll()
Так что мой вопрос заключается в том, что когда мы делаем A.notifyAll(), это только просыпается материал в A.wait очереди или это там комбинированные очереди на связанный с замок.
внедрение на каком языке? – skaffman
Реализация в Python – kj89