您的位置:首页 > 其它

线程间通信之消费生产者模式二notify()

2014-08-26 18:16 183 查看
//生产消费者模式

public class ProcedureCustomerDemo

{

public static void main(String args[]){

Dug dug = new Dug();

Procedure procedure = new Procedure(dug);

Customer customer = new Customer(dug);

Thread t1 = new Thread(procedure);

Thread t2 = new Thread(customer);

t1.start();

t2.start();

}

}

class Dug

{

private int dugCount;

public synchronized void createDug(){

while(true){

if(dugCount>9){
//最多存放10只烤鸭

try{

System.out.println("烤鸭装盘已满,暂停制造");

this.wait();

}catch(Exception e){

}

}

System.out.println("生产第"+(++dugCount)+"只烤鸭");

try{

this.notify();

}catch(Exception e){

}

}

}

public synchronized void saleDug(){

while(true){

if(dugCount<1){

try{

System.out.println("烤鸭装盘已空,暂停卖出");

this.wait();

}catch(Exception e){

}

}

System.out.println("售出第"+(dugCount--)+"只烤鸭");

try{

this.notify();

}catch(Exception e){

}

}

}

}

class Procedure implements Runnable

{

private Dug dug;

public Procedure(Dug dug){

this.dug = dug;

}

public void run(){

dug.createDug();

}

}

class Customer implements Runnable

{

private Dug dug;

public Customer(Dug dug){

this.dug = dug;

}

public void run(){

dug.saleDug();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐