62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.LinkedList;
import java.util.List;
class Computer
{
private List<String> products = new LinkedList<String>();
private boolean isWait = false;
public String get()
{
if (products.isEmpty())
{
isWait = true;
try
{
synchronized (this)
{
super.wait();
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
if (products.isEmpty())
{
return null;
}
String str = products.get(0);
products.remove(0);
return str;
}
public void set(String host)
{
products.add(host);
if (isWait)
{
synchronized (this)
{
super.notifyAll();
}
}
}
}
class Producer implements Runnable
{
private Computer computer;
public Producer(Computer computer)
{
this.computer = computer;
}
public void run()
{
boolean flag = false;
for (int i = 0; i < 10; i++)
{
if (flag)
{
this.computer.set("电脑主机" + i);
}
else
{
this.computer.set("显示器" + i);
}
flag = !flag;
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
class Consumer implements Runnable
{
private Computer computer;
public Consumer(Computer computer)
{
this.computer = computer;
}
public void run()
{
for (int i = 0; i < 10; i++)
{
System.out.println(computer.get());
}
}
}
public class Hello
{
public static void main(String[] args)
{
Computer co = new Computer();
Producer pro = new Producer(co);
Consumer con = new Consumer(co);
new Thread(pro).start();
new Thread(con).start();
}
}