Ответ 1
Проще говоря, вы используете условие, когда потоки заинтересованы в ожидании того, что что-то станет истинным, и после его истины, чтобы иметь эксклюзивный доступ к некоторому совместно используемому ресурсу.
В то время как вы используете событие, когда потоки просто заинтересованы в том, чтобы что-то стало истинным.
В сущности, условие является абстрактным событием + блокировкой, но оно становится более интересным, если учесть, что вы можете иметь несколько разных Условий по одному и тому же базовому блокировке. Таким образом, у вас могут быть разные условия, описывающие состояние базового ресурса, означающее, что вы можете разбудить работников, интересующихся только конкретными состояниями общего ресурса.