有趣的生产者和消费者问题
问题:每生产3个,消费2个,问题的难点在于生产3个的不是同一个线程,而消费2个的也不是同一个线程。实现代码如下:
- public class ExecutorServiceTest {
- private static int produceCount = 0;
- private static int consumeCount = 0;
- private static Object produceLock = new Object();
- private static Object consumeLock = new Object();
- public static void main(String[] args) {
- final List tasks = new ArrayList();
- System.out.println(“MyBlog: http://blog.csdn.net/”+“sunyujia/”);
- final ExecutorService exec = Executors.newCachedThreadPool();
- for (int i = 0; i < 10; i++) {//10个生产者
- exec.execute(new Runnable() {
- public void run() {
- while (!Thread.interrupted()) {
- try {
- synchronized (consumeLock) {
- if (produceCount >= 3)
- consumeLock.wait();
- }
- synchronized (produceLock) {
- if (produceCount < 3) {
- tasks.add(new Object());// 生产
- System.out.println(Thread.currentThread().getName()+“生产任务 还剩:” + tasks.size());
- produceCount++;
- if (produceCount >= 3) {
- consumeCount = 2;// 提示只能消费2个
- System.out.println(“生产者友情提示现在库存”
- + tasks.size());
- produceLock.notifyAll();
- }
- Thread.yield();
- }
- }
- Thread.sleep(600);// 让程序执行慢点以便观察
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
- for (int i = 0; i < 20; i++) {//20个消费者
- exec.execute(new Runnable() {
- public void run() {
- while (!Thread.interrupted()) {
- try {
- synchronized (produceLock) {
- if (consumeCount <= 0)
- produceLock.wait();
- }
- synchronized (consumeLock) {
- if (consumeCount > 0) {
- tasks.remove(0);// 消费
- System.out.println(Thread.currentThread().getName()+“处理任务 还剩:”
- + tasks.size());
- consumeCount–;
- if (consumeCount <= 0) {
- produceCount = 0;// 要求再生成3个
- System.out.println(“消费者友情提示现在库存”
- + tasks.size());
- consumeLock.notifyAll();
- }
- }
- }
- Thread.sleep(600);// 让程序执行慢点以便观察
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- });
- }
- exec.shutdown();
- }
- }
部分结果如下:
pool-1-thread-1生成任务 还剩1
pool-1-thread-6生成任务 还剩2
pool-1-thread-5生成任务 还剩3
生产者提示库存还剩:3
pool-1-thread-11处理任务 还剩:2
pool-1-thread-12处理任务 还剩:1
生成现在库存:1
pool-1-thread-10生成任务 还剩2
pool-1-thread-9生成任务 还剩3
pool-1-thread-8生成任务 还剩4
生产者提示库存还剩:4
pool-1-thread-20处理任务 还剩:3
pool-1-thread-22处理任务 还剩:2
生成现在库存:2
pool-1-thread-1生成任务 还剩3
pool-1-thread-5生成任务 还剩4
pool-1-thread-4生成任务 还剩5
生产者提示库存还剩:5
pool-1-thread-30处理任务 还剩:4
pool-1-thread-29处理任务 还剩:3
生成现在库存:3
pool-1-thread-10生成任务 还剩4
pool-1-thread-9生成任务 还剩5
pool-1-thread-8生成任务 还剩6
生产者提示库存还剩:6
pool-1-thread-17处理任务 还剩:5
pool-1-thread-16处理任务 还剩:4
生成现在库存:4
pool-1-thread-1生成任务 还剩1pool-1-thread-6生成任务 还剩2pool-1-thread-5生成任务 还剩3生产者提示库存还剩:3pool-1-thread-11处理任务 还剩:2pool-1-thread-12处理任务 还剩:1生成现在库存:1pool-1-thread-10生成任务 还剩2pool-1-thread-9生成任务 还剩3pool-1-thread-8生成任务 还剩4生产者提示库存还剩:4pool-1-thread-20处理任务 还剩:3pool-1-thread-22处理任务 还剩:2生成现在库存:2pool-1-thread-1生成任务 还剩3pool-1-thread-5生成任务 还剩4pool-1-thread-4生成任务 还剩5生产者提示库存还剩:5pool-1-thread-30处理任务 还剩:4pool-1-thread-29处理任务 还剩:3生成现在库存:3pool-1-thread-10生成任务 还剩4pool-1-thread-9生成任务 还剩5pool-1-thread-8生成任务 还剩6生产者提示库存还剩:6pool-1-thread-17处理任务 还剩:5pool-1-thread-16处理任务 还剩:4生成现在库存:4pool-1-thread-6生成任务 还剩5pool-1-thread-7生成任务 还剩6pool-1-thread-2生成任务 还剩7生产者提示库存还剩:7pool-1-thread-23处理任务 还剩:6pool-1-thread-19处理任务 还剩:5生成现在库存:5pool-1-thread-10生成任务 还剩6pool-1-thread-9生成任务 还剩7pool-1-thread-8生成任务 还剩8生产者提示库存还剩:8pool-1-thread-16处理任务 还剩:7pool-1-thread-12处理任务 还剩:6生成现在库存:6pool-1-thread-6生成任务 还剩7pool-1-thread-7生成任务 还剩8pool-1-thread-2生成任务 还剩9生产者提示库存还剩:9pool-1-thread-23处理任务 还剩:8pool-1-thread-19处理任务 还剩:7生成现在库存:7pool-1-thread-4生成任务 还剩8pool-1-thread-5生成任务 还剩9pool-1-thread-9生成任务 还剩10生产者提示库存还剩:10pool-1-thread-13处理任务 还剩:9pool-1-thread-20处理任务 还剩:8生成现在库存:8pool-1-thread-1生成任务 还剩9pool-1-thread-8生成任务 还剩10pool-1-thread-10生成任务 还剩11生产者提示库存还剩:11pool-1-thread-16处理任务 还剩:10pool-1-thread-12处理任务 还剩:9生成现在库存:9pool-1-thread-6生成任务 还剩10pool-1-thread-7生成任务 还剩11pool-1-thread-2生成任务 还剩12生产者提示库存还剩:12pool-1-thread-30处理任务 还剩:11pool-1-thread-19处理任务 还剩:10生成现在库存:10pool-1-thread-3生成任务 还剩11pool-1-thread-4生成任务 还剩12pool-1-thread-5生成任务 还剩13生产者提示库存还剩:13pool-1-thread-23处理任务 还剩:12pool-1-thread-13处理任务 还剩:11生成现在库存:11pool-1-thread-9生成任务 还剩12pool-1-thread-1生成任务 还剩13pool-1-thread-8生成任务 还剩14生产者提示库存还剩:14pool-1-thread-20处理任务 还剩:13pool-1-thread-16处理任务 还剩:12生成现在库存:12pool-1-thread-10生成任务 还剩13pool-1-thread-6生成任务 还剩14pool-1-thread-7生成任务 还剩15生产者提示库存还剩:15pool-1-thread-12处理任务 还剩:14pool-1-thread-17处理任务 还剩:13生成现在库存:13pool-1-thread-2生成任务 还剩14pool-1-thread-4生成任务 还剩15pool-1-thread-3生成任务 还剩16生产者提示库存还剩:16pool-1-thread-27处理任务 还剩:15pool-1-thread-15处理任务 还剩:14生成现在库存:14pool-1-thread-9生成任务 还剩15pool-1-thread-5生成任务 还剩16pool-1-thread-8生成任务 还剩17生产者提示库存还剩:17pool-1-thread-20处理任务 还剩:16pool-1-thread-13处理任务 还剩:15生成现在库存:15pool-1-thread-1生成任务 还剩16pool-1-thread-10生成任务 还剩17pool-1-thread-6生成任务 还剩18生产者提示库存还剩:18pool-1-thread-16处理任务 还剩:17pool-1-thread-12处理任务 还剩:16生成现在库存:16pool-1-thread-7生成任务 还剩17pool-1-thread-4生成任务 还剩18pool-1-thread-2生成任务 还剩19生产者提示库存还剩:19pool-1-thread-29处理任务 还剩:18pool-1-thread-27处理任务 还剩:17生成现在库存:17pool-1-thread-5生成任务 还剩18pool-1-thread-9生成任务 还剩19pool-1-thread-8生成任务 还剩20生产者提示库存还剩:20pool-1-thread-20处理任务 还剩:19pool-1-thread-30处理任务 还剩:18生成现在库存:18pool-1-thread-1生成任务 还剩19pool-1-thread-10生成任务 还剩20pool-1-thread-6生成任务 还剩21生产者提示库存还剩:21pool-1-thread-11处理任务 还剩:20pool-1-thread-19处理任务 还剩:19生成现在库存:19pool-1-thread-7生成任务 还剩20pool-1-thread-3生成任务 还剩21pool-1-thread-2生成任务 还剩22生产者提示库存还剩:22pool-1-thread-12处理任务 还剩:21pool-1-thread-16处理任务 还剩:20生成现在库存:20pool-1-thread-4生成任务 还剩21pool-1-thread-9生成任务 还剩22pool-1-thread-5生成任务 还剩23生产者提示库存还剩:23pool-1-thread-29处理任务 还剩:22pool-1-thread-25处理任务 还剩:21生成现在库存:21pool-1-thread-8生成任务 还剩22pool-1-thread-1生成任务 还剩23pool-1-thread-10生成任务 还剩24生产者提示库存还剩:24pool-1-thread-20处理任务 还剩:23pool-1-thread-15处理任务 还剩:22生成现在库存:22pool-1-thread-6生成任务 还剩23pool-1-thread-7生成任务 还剩24pool-1-thread-4生成任务 还剩25生产者提示库存还剩:25pool-1-thread-29处理任务 还剩:24pool-1-thread-16处理任务 还剩:23生成现在库存:23pool-1-thread-9生成任务 还剩24pool-1-thread-5生成任务 还剩25pool-1-thread-8生成任务 还剩26生产者提示库存还剩:26pool-1-thread-20处理任务 还剩:25pool-1-thread-17处理任务 还剩:24生成现在库存:24pool-1-thread-1生成任务 还剩25pool-1-thread-10生成任务 还剩26pool-1-thread-6生成任务 还剩27生产者提示库存还剩:27pool-1-thread-27处理任务 还剩:26pool-1-thread-30处理任务 还剩:25生成现在库存:25pool-1-thread-7生成任务 还剩26pool-1-thread-4生成任务 还剩27pool-1-thread-9生成任务 还剩28生产者提示库存还剩:28pool-1-thread-12处理任务 还剩:27pool-1-thread-13处理任务 还剩:26生成现在库存:26pool-1-thread-8生成任务 还剩27pool-1-thread-1生成任务 还剩28pool-1-thread-5生成任务 还剩29生产者提示库存还剩:29pool-1-thread-25处理任务 还剩:28pool-1-thread-28处理任务 还剩:27生成现在库存:27pool-1-thread-3生成任务 还剩28pool-1-thread-2生成任务 还剩29pool-1-thread-10生成任务 还剩30生产者提示库存还剩:30pool-1-thread-19处理任务 还剩:29pool-1-thread-22处理任务 还剩:28生成现在库存:28pool-1-thread-6生成任务 还剩29pool-1-thread-7生成任务 还剩30pool-1-thread-4生成任务 还剩31生产者提示库存还剩:31pool-1-thread-15处理任务 还剩:30pool-1-thread-30处理任务 还剩:29生成现在库存:29pool-1-thread-9生成任务 还剩30pool-1-thread-8生成任务 还剩31pool-1-thread-1生成任务 还剩32生产者提示库存还剩:32pool-1-thread-25处理任务 还剩:31pool-1-thread-29处理任务 还剩:30生成现在库存:30pool-1-thread-5生成任务 还剩31pool-1-thread-10生成任务 还剩32pool-1-thread-2生成任务 还剩33生产者提示库存还剩:33pool-1-thread-19处理任务 还剩:32pool-1-thread-20处理任务 还剩:31生成现在库存:31pool-1-thread-3生成任务 还剩32pool-1-thread-6生成任务 还剩33pool-1-thread-7生成任务 还剩34生产者提示库存还剩:34pool-1-thread-22处理任务 还剩:33pool-1-thread-18处理任务 还剩:32生成现在库存:32pool-1-thread-4生成任务 还剩33pool-1-thread-9生成任务 还剩34pool-1-thread-1生成任务 还剩35生产者提示库存还剩:35pool-1-thread-27处理任务 还剩:34pool-1-thread-30处理任务 还剩:33生成现在库存:33pool-1-thread-8生成任务 还剩34pool-1-thread-5生成任务 还剩35pool-1-thread-3生成任务 还剩36生产者提示库存还剩:36pool-1-thread-19处理任务 还剩:35pool-1-thread-12处理任务 还剩:34生成现在库存:34pool-1-thread-10生成任务 还剩35pool-1-thread-2生成任务 还剩36pool-1-thread-6生成任务 还剩37生产者提示库存还剩:37pool-1-thread-20处理任务 还剩:36pool-1-thread-17处理任务 还剩:35生成现在库存:35pool-1-thread-7生成任务 还剩36pool-1-thread-9生成任务 还剩37pool-1-thread-4生成任务 还剩38生产者提示库存还剩:38pool-1-thread-11处理任务 还剩:37pool-1-thread-23处理任务 还剩:36生成现在库存:36pool-1-thread-1生成任务 还剩37pool-1-thread-8生成任务 还剩38pool-1-thread-5生成任务 还剩39生产者提示库存还剩:39pool-1-thread-27处理任务 还剩:38pool-1-thread-30处理任务 还剩:37生成现在库存:37pool-1-thread-3生成任务 还剩38pool-1-thread-2生成任务 还剩39pool-1-thread-10生成任务 还剩40生产者提示库存还剩:40pool-1-thread-13处理任务 还剩:39pool-1-thread-16处理任务 还剩:38生成现在库存:38pool-1-thread-6生成任务 还剩39pool-1-thread-7生成任务 还剩40pool-1-thread-9生成任务 还剩41生产者提示库存还剩:41pool-1-thread-28处理任务 还剩:40pool-1-thread-12处理任务 还剩:39生成现在库存:39pool-1-thread-4生成任务 还剩40pool-1-thread-1生成任务 还剩41pool-1-thread-8生成任务 还剩42生产者提示库存还剩:42pool-1-thread-13处理任务 还剩:41pool-1-thread-16处理任务 还剩:40生成现在库存:40pool-1-thread-10生成任务 还剩41pool-1-thread-3生成任务 还剩42pool-1-thread-2生成任务 还剩43生产者提示库存还剩:43pool-1-thread-19处理任务 还剩:42pool-1-thread-15处理任务 还剩:41生成现在库存:41pool-1-thread-6生成任务 还剩42pool-1-thread-7生成任务 还剩43pool-1-thread-9生成任务 还剩44生产者提示库存还剩:44pool-1-thread-28处理任务 还剩:43pool-1-thread-12处理任务 还剩:42生成现在库存:42pool-1-thread-4生成任务 还剩43pool-1-thread-5生成任务 还剩44pool-1-thread-1生成任务 还剩45生产者提示库存还剩:45pool-1-thread-11处理任务 还剩:44pool-1-thread-23处理任务 还剩:43生成现在库存:43pool-1-thread-10生成任务 还剩44pool-1-thread-3生成任务 还剩45pool-1-thread-2生成任务 还剩46生产者提示库存还剩:46pool-1-thread-30处理任务 还剩:45pool-1-thread-20处理任务 还剩:44生成现在库存:44pool-1-thread-8生成任务 还剩45pool-1-thread-6生成任务 还剩46pool-1-thread-7生成任务 还剩47生产者提示库存还剩:47pool-1-thread-25处理任务 还剩:46pool-1-thread-29处理任务 还剩:45生成现在库存:45pool-1-thread-9生成任务 还剩46pool-1-thread-4生成任务 还剩47pool-1-thread-10生成任务 还剩48生产者提示库存还剩:48pool-1-thread-30处理任务 还剩:47pool-1-thread-23处理任务 还剩:46生成现在库存:46pool-1-thread-2生成任务 还剩47pool-1-thread-3生成任务 还剩48pool-1-thread-1生成任务 还剩49生产者提示库存还剩:49pool-1-thread-20处理任务 还剩:48pool-1-thread-19处理任务 还剩:47生成现在库存:47pool-1-thread-5生成任务 还剩48pool-1-thread-8生成任务 还剩49pool-1-thread-6生成任务 还剩50生产者提示库存还剩:50pool-1-thread-24处理任务 还剩:49pool-1-thread-21处理任务 还剩:48生成现在库存:48pool-1-thread-7生成任务 还剩49pool-1-thread-9生成任务 还剩50pool-1-thread-4生成任务 还剩51生产者提示库存还剩:51pool-1-thread-13处理任务 还剩:50pool-1-thread-16处理任务 还剩:49生成现在库存:49pool-1-thread-1生成任务 还剩50pool-1-thread-10生成任务 还剩51pool-1-thread-2生成任务 还剩52生产者提示库存还剩:52pool-1-thread-11处理任务 还剩:51pool-1-thread-23处理任务 还剩:50生成现在库存:50pool-1-thread-3生成任务 还剩51pool-1-thread-5生成任务 还剩52pool-1-thread-8生成任务 还剩53生产者提示库存还剩:53pool-1-thread-19处理任务 还剩:52pool-1-thread-20处理任务 还剩:51生成现在库存:51pool-1-thread-6生成任务 还剩52pool-1-thread-7生成任务 还剩53pool-1-thread-9生成任务 还剩54生产者提示库存还剩:54pool-1-thread-17处理任务 还剩:53pool-1-thread-21处理任务 还剩:52生成现在库存:52pool-1-thread-4生成任务 还剩53pool-1-thread-10生成任务 还剩54pool-1-thread-3生成任务 还剩55生产者提示库存还剩:55pool-1-thread-30处理任务 还剩:54pool-1-thread-23处理任务 还剩:53生成现在库存:53pool-1-thread-2生成任务 还剩54pool-1-thread-1生成任务 还剩55pool-1-thread-5生成任务 还剩56生产者提示库存还剩:56pool-1-thread-12处理任务 还剩:55pool-1-thread-28处理任务 还剩:54生成现在库存:54pool-1-thread-8生成任务 还剩55pool-1-thread-6生成任务 还剩56pool-1-thread-7生成任务 还剩57生产者提示库存还剩:57pool-1-thread-20处理任务 还剩:56pool-1-thread-26处理任务 还剩:55生成现在库存:55pool-1-thread-9生成任务 还剩56pool-1-thread-4生成任务 还剩57pool-1-thread-10生成任务 还剩58生产者提示库存还剩:58pool-1-thread-24处理任务 还剩:57pool-1-thread-21处理任务 还剩:56生成现在库存:56pool-1-thread-3生成任务 还剩57pool-1-thread-2生成任务 还剩58pool-1-thread-1生成任务 还剩59生产者提示库存还剩:59pool-1-thread-13处理任务 还剩:58pool-1-thread-11处理任务 还剩:57生成现在库存:57pool-1-thread-5生成任务 还剩58pool-1-thread-8生成任务 还剩59pool-1-thread-6生成任务 还剩60生产者提示库存还剩:60pool-1-thread-12处理任务 还剩:59pool-1-thread-28处理任务 还剩:58生成现在库存:58pool-1-thread-7生成任务 还剩59pool-1-thread-9生成任务 还剩60pool-1-thread-4生成任务 还剩61生产者提示库存还剩:61pool-1-thread-26处理任务 还剩:60pool-1-thread-20处理任务 还剩:59生成现在库存:59pool-1-thread-10生成任务 还剩60pool-1-thread-3生成任务 还剩61pool-1-thread-2生成任务 还剩62生产者提示库存还剩:62pool-1-thread-15处理任务 还剩:61pool-1-thread-27处理任务 还剩:60生成现在库存:60pool-1-thread-1生成任务 还剩61pool-1-thread-5生成任务 还剩62pool-1-thread-8生成任务 还剩63生产者提示库存还剩:63pool-1-thread-25处理任务 还剩:62pool-1-thread-29处理任务 还剩:61生成现在库存:61pool-1-thread-6生成任务 还剩62pool-1-thread-7生成任务 还剩63pool-1-thread-9生成任务 还剩64生产者提示库存还剩:64pool-1-thread-28处理任务 还剩:63pool-1-thread-12处理任务 还剩:62生成现在库存:62pool-1-thread-4生成任务 还剩63pool-1-thread-10生成任务 还剩64pool-1-thread-3生成任务 还剩65生产者提示库存还剩:65pool-1-thread-27处理任务 还剩:64pool-1-thread-15处理任务 还剩:63生成现在库存:63pool-1-thread-2生成任务 还剩64pool-1-thread-1生成任务 还剩65pool-1-thread-5生成任务 还剩66生产者提示库存还剩:66pool-1-thread-22处理任务 还剩:65pool-1-thread-18处理任务 还剩:64生成现在库存:64pool-1-thread-8生成任务 还剩65pool-1-thread-6生成任务 还剩66pool-1-thread-7生成任务 还剩67生产者提示库存还剩:67pool-1-thread-25处理任务 还剩:66pool-1-thread-29处理任务 还剩:65生成现在库存:65pool-1-thread-9生成任务 还剩66pool-1-thread-4生成任务 还剩67pool-1-thread-10生成任务 还剩68生产者提示库存还剩:68pool-1-thread-12处理任务 还剩:67pool-1-thread-28处理任务 还剩:66生成现在库存:66pool-1-thread-3生成任务 还剩67pool-1-thread-2生成任务 还剩68pool-1-thread-1生成任务 还剩69生产者提示库存还剩:69pool-1-thread-20处理任务 还剩:68pool-1-thread-15处理任务 还剩:67生成现在库存:67pool-1-thread-5生成任务 还剩68pool-1-thread-8生成任务 还剩69pool-1-thread-6生成任务 还剩70生产者提示库存还剩:70pool-1-thread-30处理任务 还剩:69pool-1-thread-23处理任务 还剩:68生成现在库存:68pool-1-thread-7生成任务 还剩69pool-1-thread-9生成任务 还剩70pool-1-thread-4生成任务 还剩71生产者提示库存还剩:71pool-1-thread-27处理任务 还剩:70pool-1-thread-15处理任务 还剩:69生成现在库存:69pool-1-thread-10生成任务 还剩70pool-1-thread-8生成任务 还剩71pool-1-thread-5生成任务 还剩72生产者提示库存还剩:72pool-1-thread-20处理任务 还剩:71pool-1-thread-28处理任务 还剩:70生成现在库存:70pool-1-thread-3生成任务 还剩71pool-1-thread-2生成任务 还剩72pool-1-thread-6生成任务 还剩73生产者提示库存还剩:73pool-1-thread-26处理任务 还剩:72pool-1-thread-22处理任务 还剩:71生成现在库存:71pool-1-thread-7生成任务 还剩72pool-1-thread-9生成任务 还剩73pool-1-thread-4生成任务 还剩74生产者提示库存还剩:74pool-1-thread-12处理任务 还剩:73pool-1-thread-25处理任务 还剩:72生成现在库存:72pool-1-thread-2生成任务 还剩73pool-1-thread-10生成任务 还剩74pool-1-thread-3生成任务 还剩75生产者提示库存还剩:75pool-1-thread-27处理任务 还剩:74pool-1-thread-15处理任务 还剩:73生成现在库存:73pool-1-thread-5生成任务 还剩74pool-1-thread-1生成任务 还剩75pool-1-thread-6生成任务 还剩76生产者提示库存还剩:76pool-1-thread-23处理任务 还剩:75pool-1-thread-19处理任务 还剩:74生成现在库存:74pool-1-thread-7生成任务 还剩75pool-1-thread-9生成任务 还剩76pool-1-thread-8生成任务 还剩77生产者提示库存还剩:77pool-1-thread-25处理任务 还剩:76pool-1-thread-12处理任务 还剩:75生成现在库存:75pool-1-thread-2生成任务 还剩76pool-1-thread-3生成任务 还剩77pool-1-thread-10生成任务 还剩78生产者提示库存还剩:78pool-1-thread-15处理任务 还剩:77pool-1-thread-27处理任务 还剩:76生成现在库存:76pool-1-thread-4生成任务 还剩77pool-1-thread-5生成任务 还剩78pool-1-thread-1生成任务 还剩79生产者提示库存还剩:79pool-1-thread-29处理任务 还剩:78pool-1-thread-17处理任务 还剩:77生成现在库存:77pool-1-thread-6生成任务 还剩78pool-1-thread-7生成任务 还剩79pool-1-thread-9生成任务 还剩80生产者提示库存还剩:80pool-1-thread-20处理任务 还剩:79pool-1-thread-28处理任务 还剩:78生成现在库存:78pool-1-thread-8生成任务 还剩79pool-1-thread-2生成任务 还剩80pool-1-thread-3生成任务 还剩81生产者提示库存还剩:81pool-1-thread-29处理任务 还剩:80pool-1-thread-30处理任务 还剩:79生成现在库存:79pool-1-thread-4生成任务 还剩80pool-1-thread-5生成任务 还剩81pool-1-thread-10生成任务 还剩82生产者提示库存还剩:82pool-1-thread-15处理任务 还剩:81pool-1-thread-27处理任务 还剩:80生成现在库存:80pool-1-thread-1生成任务 还剩81pool-1-thread-6生成任务 还剩82pool-1-thread-7生成任务 还剩83生产者提示库存还剩:83pool-1-thread-17处理任务 还剩:82pool-1-thread-21处理任务 还剩:81生成现在库存:81pool-1-thread-9生成任务 还剩82pool-1-thread-8生成任务 还剩83pool-1-thread-2生成任务 还剩84生产者提示库存还剩:84pool-1-thread-11处理任务 还剩:83pool-1-thread-14处理任务 还剩:82生成现在库存:82pool-1-thread-10生成任务 还剩83pool-1-thread-3生成任务 还剩84pool-1-thread-5生成任务 还剩85生产者提示库存还剩:85pool-1-thread-30处理任务 还剩:84pool-1-thread-29处理任务 还剩:83生成现在库存:83pool-1-thread-4生成任务 还剩84pool-1-thread-1生成任务 还剩85pool-1-thread-6生成任务 还剩86生产者提示库存还剩:86pool-1-thread-27处理任务 还剩:85pool-1-thread-15处理任务 还剩:84生成现在库存:84pool-1-thread-7生成任务 还剩85pool-1-thread-9生成任务 还剩86pool-1-thread-8生成任务 还剩87生产者提示库存还剩:87pool-1-thread-16处理任务 还剩:86pool-1-thread-13处理任务 还剩:85生成现在库存:85pool-1-thread-2生成任务 还剩86pool-1-thread-3生成任务 还剩87pool-1-thread-10生成任务 还剩88生产者提示库存还剩:88pool-1-thread-19处理任务 还剩:87pool-1-thread-23处理任务 还剩:86生成现在库存:86pool-1-thread-5生成任务 还剩87pool-1-thread-1生成任务 还剩88pool-1-thread-4生成任务 还剩89生产者提示库存还剩:89pool-1-thread-29处理任务 还剩:88pool-1-thread-20处理任务 还剩:87生成现在库存:87pool-1-thread-6生成任务 还剩88pool-1-thread-7生成任务 还剩89pool-1-thread-9生成任务 还剩90生产者提示库存还剩:90pool-1-thread-25处理任务 还剩:89pool-1-thread-12处理任务 还剩:88生成现在库存:88pool-1-thread-8生成任务 还剩89pool-1-thread-2生成任务 还剩90pool-1-thread-10生成任务 还剩91生产者提示库存还剩:91pool-1-thread-19处理任务 还剩:90pool-1-thread-23处理任务 还剩:89生成现在库存:89pool-1-thread-3生成任务 还剩90pool-1-thread-4生成任务 还剩91pool-1-thread-1生成任务 还剩92生产者提示库存还剩:92pool-1-thread-29处理任务 还剩:91pool-1-thread-30处理任务 还剩:90生成现在库存:90pool-1-thread-5生成任务 还剩91pool-1-thread-6生成任务 还剩92pool-1-thread-7生成任务 还剩93生产者提示库存还剩:93pool-1-thread-20处理任务 还剩:92pool-1-thread-25处理任务 还剩:91生成现在库存:91pool-1-thread-9生成任务 还剩92pool-1-thread-8生成任务 还剩93pool-1-thread-2生成任务 还剩94生产者提示库存还剩:94pool-1-thread-24处理任务 还剩:93pool-1-thread-12处理任务 还剩:92生成现在库存:92pool-1-thread-10生成任务 还剩93pool-1-thread-1生成任务 还剩94pool-1-thread-4生成任务 还剩95生产者提示库存还剩:95pool-1-thread-16处理任务 还剩:94pool-1-thread-13处理任务 还剩:93生成现在库存:93pool-1-thread-3生成任务 还剩94pool-1-thread-5生成任务 还剩95pool-1-thread-6生成任务 还剩96生产者提示库存还剩:96pool-1-thread-30处理任务 还剩:95pool-1-thread-11处理任务 还剩:94生成现在库存:94pool-1-thread-7生成任务 还剩95pool-1-thread-9生成任务 还剩96pool-1-thread-8生成任务 还剩97生产者提示库存还剩:97pool-1-thread-25处理任务 还剩:96pool-1-thread-20处理任务 还剩:95生成现在库存:95pool-1-thread-2生成任务 还剩96pool-1-thread-10生成任务 还剩97pool-1-thread-1生成任务 还剩98生产者提示库存还剩:98pool-1-thread-17处理任务 还剩:97pool-1-thread-21处理任务 还剩:96生成现在库存:96pool-1-thread-4生成任务 还剩97pool-1-thread-3生成任务 还剩98pool-1-thread-5生成任务 还剩99生产者提示库存还剩:99pool-1-thread-19处理任务 还剩:98pool-1-thread-23处理任务 还剩:97生成现在库存:97pool-1-thread-6生成任务 还剩98pool-1-thread-7生成任务 还剩99pool-1-thread-9生成任务 还剩100生产者提示库存还剩:100pool-1-thread-29处理任务 还剩:99pool-1-thread-22处理任务 还剩:98生成现在库存:98pool-1-thread-8生成任务 还剩99pool-1-thread-2生成任务 还剩100pool-1-thread-10生成任务 还剩101生产者提示库存还剩:101pool-1-thread-20处理任务 还剩:100pool-1-thread-25处理任务 还剩:99生成现在库存:99pool-1-thread-3生成任务 还剩100pool-1-thread-1生成任务 还剩101pool-1-thread-4生成任务 还剩102生产者提示库存还剩:102pool-1-thread-24处理任务 还剩:101pool-1-thread-12处理任务 还剩:100生成现在库存:100pool-1-thread-5生成任务 还剩101pool-1-thread-6生成任务 还剩102pool-1-thread-7生成任务 还剩103生产者提示库存还剩:103pool-1-thread-13处理任务 还剩:102pool-1-thread-16处理任务 还剩:101生成现在库存:101pool-1-thread-9生成任务 还剩102pool-1-thread-8生成任务 还剩103pool-1-thread-2生成任务 还剩104生产者提示库存还剩:104pool-1-thread-28处理任务 还剩:103pool-1-thread-29处理任务 还剩:102生成现在库存:102pool-1-thread-10生成任务 还剩103pool-1-thread-3生成任务 还剩104pool-1-thread-4生成任务 还剩105生产者提示库存还剩:105pool-1-thread-24处理任务 还剩:104pool-1-thread-12处理任务 还剩:103生成现在库存:103pool-1-thread-1生成任务 还剩104pool-1-thread-5生成任务 还剩105pool-1-thread-6生成任务 还剩106生产者提示库存还剩:106pool-1-thread-13处理任务 还剩:105pool-1-thread-16处理任务 还剩:104生成现在库存:104pool-1-thread-7生成任务 还剩105pool-1-thread-9生成任务 还剩106pool-1-thread-8生成任务 还剩107生产者提示库存还剩:107pool-1-thread-19处理任务 还剩:106pool-1-thread-23处理任务 还剩:105生成现在库存:105pool-1-thread-2生成任务 还剩106pool-1-thread-10生成任务 还剩107pool-1-thread-3生成任务 还剩108生产者提示库存还剩:108pool-1-thread-11处理任务 还剩:107pool-1-thread-22处理任务 还剩:106生成现在库存:106pool-1-thread-1生成任务 还剩107pool-1-thread-4生成任务 还剩108pool-1-thread-5生成任务 还剩109生产者提示库存还剩:109pool-1-thread-27处理任务 还剩:108pool-1-thread-24处理任务 还剩:107生成现在库存:107pool-1-thread-6生成任务 还剩108pool-1-thread-7生成任务 还剩109pool-1-thread-9生成任务 还剩110生产者提示库存还剩:110pool-1-thread-16处理任务 还剩:109pool-1-thread-13处理任务 还剩:108生成现在库存:108pool-1-thread-8生成任务 还剩109pool-1-thread-2生成任务 还剩110pool-1-thread-10生成任务 还剩111生产者提示库存还剩:111pool-1-thread-23处理任务 还剩:110pool-1-thread-19处理任务 还剩:109生成现在库存:109pool-1-thread-1生成任务 还剩110pool-1-thread-3生成任务 还剩111pool-1-thread-5生成任务 还剩112生产者提示库存还剩:112pool-1-thread-27处理任务 还剩:111pool-1-thread-22处理任务 还剩:110生成现在库存:110pool-1-thread-4生成任务 还剩111pool-1-thread-6生成任务 还剩112pool-1-thread-7生成任务 还剩113生产者提示库存还剩:113pool-1-thread-24处理任务 还剩:112pool-1-thread-21处理任务 还剩:111生成现在库存:111pool-1-thread-9生成任务 还剩112pool-1-thread-8生成任务 还剩113pool-1-thread-2生成任务 还剩114生产者提示库存还剩:114pool-1-thread-13处理任务 还剩:113pool-1-thread-16处理任务 还剩:112生成现在库存:112pool-1-thread-10生成任务 还剩113pool-1-thread-3生成任务 还剩114pool-1-thread-1生成任务 还剩115生产者提示库存还剩:115pool-1-thread-19处理任务 还剩:114pool-1-thread-23处理任务 还剩:113生成现在库存:113pool-1-thread-5生成任务 还剩114pool-1-thread-4生成任务 还剩115pool-1-thread-7生成任务 还剩116生产者提示库存还剩:116pool-1-thread-15处理任务 还剩:115pool-1-thread-11处理任务 还剩:114生成现在库存:114pool-1-thread-6生成任务 还剩115pool-1-thread-9生成任务 还剩116pool-1-thread-8生成任务 还剩117生产者提示库存还剩:117pool-1-thread-28处理任务 还剩:116pool-1-thread-29处理任务 还剩:115生成现在库存:115pool-1-thread-2生成任务 还剩116pool-1-thread-10生成任务 还剩117pool-1-thread-3生成任务 还剩118生产者提示库存还剩:118pool-1-thread-19处理任务 还剩:117pool-1-thread-13处理任务 还剩:116生成现在库存:116pool-1-thread-1生成任务 还剩117pool-1-thread-5生成任务 还剩118pool-1-thread-4生成任务 还剩119生产者提示库存还剩:119pool-1-thread-23处理任务 还剩:118pool-1-thread-15处理任务 还剩:117生成现在库存:117pool-1-thread-7生成任务 还剩118pool-1-thread-6生成任务 还剩119pool-1-thread-9生成任务 还剩120生产者提示库存还剩:120pool-1-thread-27处理任务 还剩:119pool-1-thread-22处理任务 还剩:118生成现在库存:118pool-1-thread-8生成任务 还剩119pool-1-thread-2生成任务 还剩120pool-1-thread-10生成任务 还剩121生产者提示库存还剩:121pool-1-thread-24处理任务 还剩:120pool-1-thread-21处理任务 还剩:119生成现在库存:119pool-1-thread-3生成任务 还剩120pool-1-thread-1生成任务 还剩121pool-1-thread-5生成任务 还剩122生产者提示库存还剩:122pool-1-thread-16处理任务 还剩:121pool-1-thread-13处理任务 还剩:120生成现在库存:120pool-1-thread-4生成任务 还剩121pool-1-thread-7生成任务 还剩122pool-1-thread-6生成任务 还剩123生产者提示库存还剩:123pool-1-thread-15处理任务 还剩:122pool-1-thread-23处理任务 还剩:121生成现在库存:121pool-1-thread-9生成任务 还剩122pool-1-thread-8生成任务 还剩123pool-1-thread-2生成任务 还剩124生产者提示库存还剩:124pool-1-thread-27处理任务 还剩:123pool-1-thread-22处理任务 还剩:122生成现在库存:122pool-1-thread-10生成任务 还剩123pool-1-thread-3生成任务 还剩124pool-1-thread-5生成任务 还剩125生产者提示库存还剩:125pool-1-thread-16处理任务 还剩:124pool-1-thread-28处理任务 还剩:123生成现在库存:123pool-1-thread-4生成任务 还剩124pool-1-thread-1生成任务 还剩125pool-1-thread-7生成任务 还剩126生产者提示库存还剩:126pool-1-thread-13处理任务 还剩:125pool-1-thread-19处理任务 还剩:124生成现在库存:124pool-1-thread-6生成任务 还剩125pool-1-thread-9生成任务 还剩126pool-1-thread-8生成任务 还剩127生产者提示库存还剩:127pool-1-thread-23处理任务 还剩:126pool-1-thread-15处理任务 还剩:125生成现在库存:125pool-1-thread-2生成任务 还剩126pool-1-thread-10生成任务 还剩127pool-1-thread-3生成任务 还剩128生产者提示库存还剩:128pool-1-thread-11处理任务 还剩:127pool-1-thread-30处理任务 还剩:126生成现在库存:126pool-1-thread-5生成任务 还剩127pool-1-thread-1生成任务 还剩128pool-1-thread-4生成任务 还剩129生产者提示库存还剩:129pool-1-thread-24处理任务 还剩:128pool-1-thread-21处理任务 还剩:127生成现在库存:127pool-1-thread-7生成任务 还剩128pool-1-thread-6生成任务 还剩129pool-1-thread-9生成任务 还剩130生产者提示库存还剩:130pool-1-thread-19处理任务 还剩:129pool-1-thread-13处理任务 还剩:128生成现在库存:128pool-1-thread-8生成任务 还剩129pool-1-thread-2生成任务 还剩130pool-1-thread-10生成任务 还剩131生产者提示库存还剩:131pool-1-thread-15处理任务 还剩:130pool-1-thread-23处理任务 还剩:129生成现在库存:129pool-1-thread-3生成任务 还剩130pool-1-thread-5生成任务 还剩131pool-1-thread-1生成任务 还剩132生产者提示库存还剩:132pool-1-thread-27处理任务 还剩:131pool-1-thread-22处理任务 还剩:130生成现在库存:130pool-1-thread-4生成任务 还剩131pool-1-thread-7生成任务 还剩132pool-1-thread-6生成任务 还剩133生产者提示库存还剩:133pool-1-thread-24处理任务 还剩:132pool-1-thread-21处理任务 还剩:131生成现在库存:131pool-1-thread-9生成任务 还剩132pool-1-thread-8生成任务 还剩133pool-1-thread-2生成任务 还剩134生产者提示库存还剩:134pool-1-thread-13处理任务 还剩:133pool-1-thread-19处理任务 还剩:132生成现在库存:132pool-1-thread-10生成任务 还剩133pool-1-thread-3生成任务 还剩134pool-1-thread-5生成任务 还剩135生产者提示库存还剩:135pool-1-thread-23处理任务 还剩:134pool-1-thread-15处理任务 还剩:133生成现在库存:133pool-1-thread-1生成任务 还剩134pool-1-thread-4生成任务 还剩135