java中多線程通信實例:生產者消費者模式


線程間的通信:

其實就是多個線程再操作同一個資源,但是操作的動作不同

 

當某個線程進入synchronized塊后,共享數據的狀態不一定滿足該線程的需要,需要其他線程改變共享數據的狀態后才能運行,而由於當時線程對共享資源時獨占的,它必須解除對共享資源的鎖定的狀態,通知其他線程可以使用該共享資源。

Java中的 wait(),notify(),notifyAll()可以實現線程間的通信。

生產者--消費者問題是典型的線程同步和通信問題

/**
 * 生產者和消費者問題,生產者生成出產品,消費者去購買產品
 * 在這里創建三個線程,一個主控線程,一個生產者線程,一個消費者線程,
 * 另外,創建一個堆棧 Stack,生成線程生成的產品放置到堆棧中,然后消費者線程再堆棧中去走產品
 * */

建立一個堆棧 代碼如下:



 

 創建一個生產者類 代碼如下:



 創建一個消費者類 代碼如下:



 主函數調用 代碼如下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM