java5提供了BlockingQueue接口,實現由ArrayBlockingQueue(基於數組),LinkedBlockingDeque(基於鏈表),SynchronousQueue(同步隊裏,該隊列中的存取操做必須交替進行)。BlockingQueue具備這樣的特徵,假如一個生產者線程向隊列中添元素,若是隊列已滿,那麼該線程被阻塞。一樣,消費者線程從隊列中取出元素,若是隊列是空的,那麼該線程阻塞。java
上圖是 blockingQueue提供的方法,通常咱們使用put和 take數組
代碼演示線程
生產者線程代碼blog
消費者線程代碼接口
寫個test 發現控制檯打印 如代碼上註釋中同樣。隊列