1. 程式人生 > >執行緒間的通訊機制

執行緒間的通訊機制

        在這個類中我們有兩個synchronized的同步方法,一個是生產烤鴨的,一個是消費烤鴨的,之所以需要同步是因為我們操作了共享資料count,同時為了保證生產烤鴨後才能消費也就是生產一隻烤鴨後才能消費一隻烤鴨,我們使用了等待/通知機制,wait()和notify()。當第一次執行生產現場時呼叫生產的方法,此時有一隻烤鴨,即flag=false,無需等待,因此我們設定可消費的烤鴨名稱然後改變flag=true,同時通知消費執行緒可以消費烤鴨了,即使此時生產執行緒再次搶到執行權,因為flag=true,所以生產執行緒會進入等待阻塞狀態,消費執行緒被喚醒後就進入消費方法,消費完成後,又改變標誌flag=false,通知生產執行緒可以生產烤鴨了.........以此迴圈。