這里是一個(gè) Java 中使用 BlockingQueue 的示例。本示例使用的是 BlockingQueue 接口的 ArrayBlockingQueue 實(shí)現(xiàn)。首先,BlockingQueueExample 類分別在兩個(gè)獨(dú)立的線程中啟動(dòng)了一個(gè) Producer 和 一個(gè) Consumer。Producer 向一個(gè)共享的 BlockingQueue 中注入字符串,而 Consumer 則會(huì)從中把它們拿出來(lái)。
以下是 Producer 類。注意它在每次 put() 調(diào)用時(shí)是如何休眠一秒鐘的。這將導(dǎo)致 Consumer 在等待隊(duì)列中對(duì)象的時(shí)候發(fā)生阻塞。
以下是 Consumer 類。它只是把對(duì)象從隊(duì)列中抽取出來(lái),然后將它們打印到 System.out。