java 生产者消费者问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 15:55:51
编写一个程序实现输出:
p put 0
p put 1
p put 2
c get 2
p put 2
p put 3
p put 4
c get 4
c get 3
c get 2
c get 1
c get 0

貌似要用栈,明显是后进先出的。。

基本上要用Stack s ;
然后生产者:

lock (s)
{
s.push (i) ;
system.out.println ("p put " + i) ;
s.notifyAll () ;
}

然后消费者:

while (true)
{
lock (s)
{
if (s.getCount () <=0)
try
{
s.wait () ;
}catch (Throwable t) {}
else
System.out.println ("c get " + s.pop ()) ;
}
}
最简单的做法是:
System.out.println ("p put 0
p put 1
p put 2
c get 2
p put 2
p put 3
p put 4
c get 4
c get 3
c get 2
c get 1
c get 0") ;

呵呵,不就是输出么。。。

咦?》
没有人愿意回答吗!!?
分太少的缘故吧

就用队列啊