設計模式之生產者 消費者模式

2021-07-06 01:19:40 字數 832 閱讀 5029

public class producerconsumer 

}/**

* 生產者執行緒,負責生產公共資源

*/class producerthread implements runnable

@override

public void run() catch (interruptedexception e)

resource.increase();

} }}/**

* 消費者執行緒,負責消費公共資源

*/class consumerthread implements runnable

@override

public void run() catch (interruptedexception e)

resource.decrease();

} }}/**

* 公共資源類

*/class publicresource catch (interruptedexception e)

} number++;

system.out.println("生產了1個,總共有" + number);

notifyall();

} /**

* 減少公共資源

*/public synchronized void decrease() catch (interruptedexception e)

} number--;

system.out.println("消費了1個,總共有" + number);

notifyall();

}}

設計模式之生產者消費者模式

生產者生產資料到緩衝區中,消費者從緩衝區中取資料。如果緩衝區已經滿了,則生產者執行緒阻塞 如果緩衝區為空,那麼消費者執行緒阻塞。1.併發性 由於方法呼叫是阻塞的,在消費者的方法沒有返回之前,生產者只好一直等在那邊。萬一消費者處理資料很慢,生產者一直等就會白白浪費資源,建立緩衝區以後,生產者把資料往緩...

設計模式 生產者消費者模式

常見場景 某個模組負責產生資料,這些資料由另乙個模組來負責處理。產生資料的模組,就形象地稱為生產者 而處理資料的模組,就稱為消費者。該模式還需要有乙個緩衝區處於生產者和消費者之間,作為乙個中介。生產者把資料放入緩衝區,而消費者從緩衝區取出資料 緩衝區作用 1.解耦,生產者和消費者只依賴緩衝區,而不互...

設計模式 生產者消費者模式

在併發程式設計中使用生產者和消費者模式能夠解決絕大多數併發問題。該模式通過平衡生產線程和消費執行緒的工作能力來提高程式的整體處理資料的速度。生產者消費者模式是通過乙個容器來解決生產者和消費者的強耦合問題。生產者和消費者彼此之間不直接通訊,而通過阻塞佇列來進行通訊,所以生產者生產完資料之後不用等待消費...