V
как-то глупо выходит
Signal_In
и Signal_Out
?Size: a a a
V
Signal_In
и Signal_Out
?E
Signal_In
и Signal_Out
?V
E
V
Wait_In
, и четвертый поток выполняет все и должен разбудить другой поток в Signal_Out
?E
E
E
E
V
Signal_Out
т.е. в текущей реализации может получиться, что например 2 потока будут ждать в wait_in
, а третий в signal_in
разбудит их и будет мясо, т.к. они все на одном мониторе ждут.А
E
А
А
E
Signal_Out
т.е. в текущей реализации может получиться, что например 2 потока будут ждать в wait_in
, а третий в signal_in
разбудит их и будет мясо, т.к. они все на одном мониторе ждут.E
AK
V
V
if (F1 < 3) wait()
и в if (F3 < 4) wait()
, т.к. например поток заблокируется при F1=1, но получит notify и не проверит, выполняется условие или нет, а должен) т.е. например while(F1<3){wait();}
проверит условие и будет ждать следующего notifyE