具体代码如下:
package com.service;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;
public class Test {
private ArrayBlockingQueue<String> blockQueue = null;
private boolean befinesh = false;
public Test() {
}
public static void main(String[] args) {
new Test().test();
}
public void test() {
this.blockQueue = new ArrayBlockingQueue<String>(10,true);
new Thread(new Runnable() {
@Override
public void run() {
try {
System.out.println("开始-----");
do {
System.out.println(Thread.currentThread().getId() + ":" + blockQueue.poll(10,TimeUnit.SECONDS));
Thread.sleep(1000L);
} while (!blockQueue.isEmpty()||befinesh == false);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
for (int i =0; i < 30; i ++) {
try {
// Thread.sleep(9000L);
String str = "kjhhk_" + i;
blockQueue.put(str);
System.out.println(Thread.currentThread().getId() + ":往queue中放入" + str);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.befinesh = true;
}
}