生產消費問題
class Ck{
private char[] rl=new char[8];
private int up=0;
public synchronized void shengchan(char aa){
while(up==rl.length){
try{
this.wait();
}
catch(Exception e){
}
}
this.notify();//叫醒另一個執行緒,是在當前執行緒處於就緒狀態的前提下
rl[up]=aa;
++up;
System.out.println("生產執行緒正在生產第"+up+"個產品,該產品是:"+aa);
}
public synchronized void xiaofei(){
char aa;
while(up==0){
try{
this.wait();
}
catch(Exception e){
}
}
this.notify();
aa=rl[up-1];//
System.out.println("消費執行緒正在消費低第"+up+"個產品,該產品是"+aa);
--up;
}
}
class Sc implements Runnable{
private Ck xc=null;
public Sc(Ck xc){
this.xc=xc;
}
public void run(){
char aa;
for(int i=0;i<26;i++){
aa=(char)('A'+i);
xc.shengchan(aa);
}
}
}
class Xf implements Runnable{
private Ck xc=null;
public Xf(Ck xc){
this.xc=xc;
}
public void run(){
for(int i=0;i<26;i++){
xc.xiaofei();
}
}
}
public class Test{
public static void main(String[] args){
Ck ck=new Ck();
Sc sc=new Sc(ck);
Xf xf=new Xf(ck);
Thread xc1=new Thread(sc);
xc1.start();
Thread xc2=new Thread(xf);
xc2.start();
}
}
相關文章
- 生產者與消費者問題
- linux 生產者與消費者問題Linux
- java實現生產者消費者問題Java
- python中多程式消費者生產者問題Python
- python中多執行緒消費者生產者問題Python執行緒
- 作業系統—生產者消費者問題詳解作業系統
- 生產者消費者問題-C++程式碼實現C++
- 面試必問:訊號量與生產者消費者問題!面試
- 生產者消費者
- 生產消費者模式模式
- 6、JUC:傳統的生產者消費者問題,防止虛假喚醒問題
- 生產者消費者模式模式
- 生產者消費者模型模型
- java的kafka生產消費JavaKafka
- Java多執行緒程式設計(同步、死鎖、生產消費者問題)Java執行緒程式設計
- 食堂中的生產-消費模型模型
- Spark Streaming 生產、消費流程梳理Spark
- python 生產者消費者模式Python模式
- 生產消費實現-寫程式碼
- 九、生產者與消費者模式模式
- ActiveMQ 生產者和消費者demoMQ
- 執行緒同步介紹及 生產者消費者問題舉例 C#版執行緒C#
- 訊號量實現生產者消費者(程式碼邏輯有問題,不適合多個消費者,不常用)
- Thinking in Java---執行緒通訊+三種方式實現生產者消費者問題ThinkingJava執行緒
- java學習回顧---生產者與消費者問題以及多執行緒補充Java執行緒
- 生產者與消費者之Android audioAndroid
- 新手練習-消費者生產者模型模型
- Java實現生產者和消費者Java
- GoLang中生產者消費者模式解決併發問題Golang模式
- 寶付助力消費金融擴充消費場景,打造產業生態產業
- synchronized同步程式+生產者消費者模式(訊號燈)解除可能出現的資源問題synchronized模式
- 阻塞佇列和生產者-消費者模式佇列模式
- RocketMQ系列(三)訊息的生產與消費MQ
- java多執行緒之消費生產模型Java執行緒模型
- Qt基於QSemaphore的生產者消費者模型QT模型
- Spring Cloud Stream如何消費自己生產的訊息?SpringCloud
- 使用BlockQueue實現生產者和消費者模式BloC模式
- 使用Disruptor實現生產者和消費者模型模型