| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1463 人关注过本帖
标题:生产者、消费者问题
取消只看楼主 加入收藏
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
 问题点数:0 回复次数:5 
生产者、消费者问题

帮忙看一下,为什么有的地方,结果也打印出来了是先消费后生产呢,谢谢!
class Queue
{
boolean available = false;
int value;
public synchronized void setValue(int value)
{
if (!available)
{
this.value = value;
available = true;
notify();
}
//数据还没有取走则等待
try
{
wait();
}
catch (Exception e)
{
e.printStackTrace();
}
}

public synchronized int getValue()
{
if (!available)//没有准备好就等待
{
try
{
wait();
}
catch (Exception e)
{
e.printStackTrace();
}
}
//准备好了数据返回该数据
available = false;
notify();
return value;
}
}
class producer extends Thread
{
Queue q;
producer(Queue q)
{
this .q= q ;
}
public void run ()
{
for (int i = 0; i<10; i++)//共放了十个数据
{
q.setValue(i);
System.out.println("producer:"+i);
}
}
}
class consumer extends Thread
{
Queue q ;
consumer(Queue q)
{
this.q = q;
}
public void run ()
{
while (true )
{
System.out.println("consumer:"+q.getValue());
}
}
}

public class sychronizedThread
{
public static void main(String[] args)
{
Queue q = new Queue();
producer pro = new producer(q); //实例化两个线程
consumer con = new consumer(q);
pro.start();
con.start();
}

}

搜索更多相关主题的帖子: 消费者 生产者 value available int 
2006-11-28 10:43
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 
是这样的哦
很奇怪,不知道那的错误哦!

2006-11-28 12:39
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 
换了后还是有点问题阿
并不是产生一个,接着消费掉这个数据阿

2006-11-28 12:56
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 
到底怎样启动线程,才能输出正确嘛!

2006-11-28 16:42
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 
producer:0
producer:1
consumer:0
producer:2
consumer:1
consumer:2
producer:3
consumer:3
producer:4
consumer:4
producer:5
producer:6
consumer:5
consumer:6
producer:7
consumer:7
producer:8
consumer:8
producer:9
consumer:9
我这里的结果怎么是这样的哦!

2006-11-28 16:53
开心一科
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-10-5
收藏
得分:0 
换了阿!
你又改过其他地方吗?

2006-11-28 17:02
快速回复:生产者、消费者问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028905 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved