У меня есть ситуация, когда один производитель и один потребитель работают с очередью объектов. Есть две ситуации, когда очередь может быть пустой:
Если очередь пуста, я хочу, чтобы потребитель ждал, пока новый объект не станет доступным, или пока производитель не сообщит, что это сделано.
Мои исследования до сих пор ни к чему не привели, потому что я все равно пришел к циклу, который проверяет как очередь, так и отдельный логический флаг (isDone). Учитывая, что нет возможности ждать несколько блокировок (предполагается ожидание очереди и флага), что можно сделать, чтобы решить эту проблему?