生產者和消費者

2021-06-28 19:03:44 字數 1422 閱讀 1638

package com.yuxinyicheng.test2;/*

*生產者和消費者的問題:

*生產者將產品交給店員,而消費者從店員處取走產品,

*店員一次只能有固定數量的產品(比如:

20個)

*如果生產者試圖生產更多的產品,店員會叫生產者停一下,

*如果店員中有空位放產品,再通知生產者繼續生產;

*如果店中沒有產品,店員會告訴消費者等一下,

*如果店中有產品再通知消費者取走產品。* 

*  * */

class clerk catch (interruptedexception e)  catch (interruptedexception e) {

// todo

自動生成的 catch 

塊e.printstacktrace();

else{

system.out.println(thread.currentthread().getname()+"消費了

"+product+"個產品");

product--;

notifyall();

class productor implements runnable{//生產者

clerk clerk ;

public productor(clerk clerk ){

this.clerk=clerk;

@override

public

void run() {

clerk.addproduct();

class consumer implements runnable{

clerk clerk ;

public consumer(clerk clerk ){

this.clerk=clerk;

@override

public

void run() {

clerk.consumeproduct();

public

class testproduceconsume {

public

static

void main(string args) {

// todo

自動生成的方法存根

clerk clerk = new clerk();

productor productor=new productor(clerk);

consumer consumer=new consumer(clerk);

thread t1=new thread(productor);

thread t2=new thread(consumer);

t1.setname("生產者");

t2.setname("消費者");

t1.start();

t2.start();

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者和消費者

package demo.one public class producerconsumerdemo 資源 class resource catch interruptedexception e this.name name count system.out.println thread.curre...

生產者和消費者

package thread 產品倉庫類 author wxg1022 public class productlist catch exception e system.out.println 我來生產1個!注意 notifyall 以後,並沒有退出,而是繼續執行直到完成 productlist ...