使用BlockingQueue(阻塞隊列)控制線程通訊

java5提供了BlockingQueue接口,實現由ArrayBlockingQueue(基於數組),LinkedBlockingDeque(基於鏈表),SynchronousQueue(同步隊裏,該隊列中的存取操做必須交替進行)。BlockingQueue具備這樣的特徵,假如一個生產者線程向隊列中添元素,若是隊列已滿,那麼該線程被阻塞。一樣,消費者線程從隊列中取出元素,若是隊列是空的,那麼該線程阻塞。java

上圖是 blockingQueue提供的方法,通常咱們使用put和 take數組

代碼演示線程

生產者線程代碼blog

消費者線程代碼接口

寫個test 發現控制檯打印 如代碼上註釋中同樣。隊列

相關文章
相關標籤/搜索