黑马程序员技术交流社区
标题:
利用BlockingQueue解决生产者消费者问题为啥我的程序挂起啦?
[打印本页]
作者:
晴天_SH
时间:
2014-4-24 21:42
标题:
利用BlockingQueue解决生产者消费者问题为啥我的程序挂起啦?
public class ProduceConsumerDemo3 {
public static void main(String[] args) {
//创建一个容量为1的队列
BlockingQueue<String> bq=new ArrayBlockingQueue<String>(1);
//启动三个生产者
new Thread(new Producer1(bq)).start();
new Thread(new Producer1(bq)).start();
new Thread(new Producer1(bq)).start();
//启动一个消费者
new Thread(new Consumer1(bq)).start();
}
}
class Producer1 implements Runnable
{
private BlockingQueue<String> bq;
public Producer1(BlockingQueue<String> bq)
{
this.bq=bq;
}
@Override
public void run() {
String []strArr=new String[]{"java","struts","Spring"};
for (int i = 0; i < 99999; i++)
{
System.out.println(Thread.currentThread().getName()+"----生产者----");
try {
bq.put(strArr[i%3]);
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
class Consumer1 implements Runnable
{
private BlockingQueue<String> bq;
public Consumer1(BlockingQueue<String> bd)
{
this.bq=bq;
}
@Override
public void run() {
while (true) {
try {
System.out.println(Thread.currentThread().getName()+"---消费者--"+bq.take());
} catch (Exception e) {
// TODO: handle exception
}
}
}
复制代码
作者:
晴天_SH
时间:
2014-4-24 23:19
运行的时候,程序好像挂起啦,CPU一下子达到90%啦,谁能帮我分析下
作者:
晴天_SH
时间:
2014-4-24 23:27
不好意思,打扰各位啦,问题已经解决啦,我参数写错啦哎,太粗心啦,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2