多線程通信中用while和用if的區別

在多線程通信中當有多個生產者和多個消費者,如果用if來判斷flag,就可能出現多個生產者和多個消費者的情況,而改用while則不會,其中的原因是while和if本身的語法特點造成的                     如圖: 對於if,線程在執行到if語句的時候進行判斷,flag爲true進入if語句的語句體中,線程進行等待。而當線程被同類線程喚醒時,由於使用的是if,if代碼塊裏的語句只執行
相關文章
相關標籤/搜索