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