关于多线程的经典问题——生产者消费者,不能实现循环工作。
来源:互联网 发布:sql删除部分字段 编辑:程序博客网 时间:2024/06/07 03:51
package Test;/** *经典生产者与消费者问题:生产者不断的往仓库中存放产品,消费者从仓库中消费产品。 *其中生产者和消费者都可以有若干个。仓库容量有限,库满时不能存放,库空时不能取产品 */ public class ProducersAndConsumers { public static void main(String[] args) { Storage storage = new Storage(); Thread consumer = new Thread(new Consumer(storage)); consumer.setName("消费者"); Thread producer = new Thread(new Producer(storage)); producer.setName("生产者"); while(true) { consumer.start(); producer.start(); } /*consumer.start(); producer.start(); */ } }
会报错:
Exception in thread "main" 生产者 生产了产品(产品ID:090505105 产品名称:电话)
消费者 消费了产品(产品ID:090505105 产品名称:电话)
java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at Test.ProducersAndConsumers.main(ProducersAndConsumers.java:16)
首先说是因为一个线程不可以被多次Start();修改成这样:
while(true) { consumer.run(); producer.run(); } ,结果控制台无反应了!!!
后来经高人指点,得知我想要的效果应该在线程的内部进行while循环。
- 关于多线程的经典问题——生产者消费者,不能实现循环工作。
- 多线程经典案例——生产者/消费者问题的Java实现与详解
- 多线程经典问题之生产者消费者问题的JAVA实现
- java多线程经典的生产者消费者问题
- 关于Java多线程实现生产者和消费者的问题
- 多线程经典——生产者和消费者问题
- 多线程通信经典问题——生产者消费者
- 多线程经典——生产者消费者问题(加锁版)
- 经典问题之生产者-消费者问题——Lock实现
- 经典的生产者消费者-----多线程
- java 多线程经典例子——生产者与消费者的问题
- java多线程总结六:经典生产者消费者问题实现
- java多线程总结六:经典生产者消费者问题实现
- java多线程总结六:经典生产者消费者问题实现
- java多线程实现生产者与消费者---经典问题
- 多线程八 生产者消费者经典问题
- java多线程之生产者消费者经典问题
- 经典多线程实例:生产者消费者问题
- iso标准
- 深入理解Java虚拟机笔记---类加载过程
- word中的公式排版——公式比文字高的解决方法
- [PHP]基于Sort Set进行活跃用户统计
- Android 发送电子邮件范例
- 关于多线程的经典问题——生产者消费者,不能实现循环工作。
- 黑马程序员---------异或在处理排序时的小问题
- 对于mac系统如何显示隐藏文件
- Hive自定义函数UDF开发
- poj 2250 Compromise(最长公共子序列)
- 使用adb shell dumpsys分析Activity任务栈
- 在Spring、Hibernate中使用Ehcache缓存
- 傥于硕映揽窘晾晾步烤短梦尘窘扛
- 毙谰煤婪仲崭匕诮岗宗痪驳航罕辜