黑马程序员技术交流社区

标题: 等待唤醒机制 [打印本页]

作者: 楚风★憧憬    时间: 2014-7-21 23:27
标题: 等待唤醒机制
等待:wait()方法让线程处于冻结状态,但不放线程执行资格。
唤醒:notify()方法唤醒一个线程,notifyAll()方法唤醒所有的线程,将线程池中等待的线程唤醒,通常唤醒第一个,而线程池中都存放着等待的线程。

线程间的通讯案例

class Resource
{
private String name;
private int count=1;
private boolean flag;

public synchronized void set(String name)
{
while(flag)
{
{

this.name=name+"::"+count++;
System.out.println(Thread.currentThread().getName()+"生产者"+name);
flag=true;
noyifyAll();

}

}

}
public synchronized void out()
{
while(!flag)
{
System.out.println(Thread.currentThread().getName()+"消费者"+name);
flag=flase;
notifyAll();
}

}
}

class Producer implements Runnable
{
private Resource r;

Producer(Resource r)
{
this.r=r;
}
public void run()
{

while(true)
{
r.set("商品");

}
}

}

class Consumer implements Runnable
{
private Resource r;

Consumer(Resource r)
{
this.r=r;
}

public void run()
{
while(true)
{
r.out();
}

}
}


class Demo
{
public static void main(String[] args)
{

Resource r= new Resource();

Producer pro= new Producer(r);

Comsumer con = new Consumer(r);

new Thread(pro).start();
new Thread(con).start();
new Thread(pro).start();

new Thread(con).start();
}
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2