多線程--簡單生產者消費者升級版

如果有多個生產者和多個消費者 像之前那樣就會產生安全問題,例如 會打印兩個生產者一個消費者 或者一個生產者兩個消費者 。   爲了防止這種情況的發生(線程醒了沒有去判斷標記),需要將if()改爲while 這樣當線程有等待狀態被喚醒的時候可以進行循環判斷,但是又由於這樣會使同一類線程全部阻塞進入等待狀態,沒有喚醒另一類線程 因此需要將this.notify()變爲this.notifyAll();
相關文章
相關標籤/搜索