首先定义一个店员进行买卖产品:
//店员 class Clerk{ private int product =0; //进货 public synchronized void get(){ if(product >=10){ System.out.println("产品已满!"); }else{ System.out.println(Thread.currentThread().getName()+":"+ ++product); } } //卖货 public synchronized void sale(){ if(product <=0){ System.out.println("产品卖完"); }else{ System.out.println(Thread.currentThread().getName()+":"+ --product); } } }
此时是对共享数据进行操作使用synchronized进行操作!!
生产者进行生产产品:
class Product implements Runnable{ private Clerk clerk; public Product(Clerk clerk){ this.clerk = clerk; } @Override public void run() { //进行生产产品 for(int i=0;i<20;i++){ clerk.get(); } } }
消费者进行购买产品:
class Consumer implements Runnable{ private Clerk clerk; public Consumer(Clerk clerk){ this.clerk = clerk; } @Override public void run() { //消费者进行消费产品 //进行生产产品 for(int i=0;i<20;i++){ clerk.sale(); } } }
原文:https://www.cnblogs.com/Mrchengs/p/10798980.html