java執行緒同步 生產消費

2021-06-01 20:34:13 字數 866 閱讀 5480

這樣,首先的看看api:

建立乙個產品物件(資料),在建立乙個倉庫用來存放產品(自定義乙個容器即可),然後就可以建立生產者和消費者了。

首先,我們想到的是可能會有兩個消費者(生產者)同時使用了同乙個物件操作(就貌似經典的銀行訪問問題了),這中情況是不允許發生的。所以,我們需要將操作鎖定

其次,倉庫是有量的限制的,所以,上面的方法就有用了

下面,來看看**:

public class producercustomer 

}//生產消費物件

class product

public string tostring()

}//儲存產品的倉庫

class syncstack catch (interruptedexception e)

} this.notifyall();

arrpd[index] = pd;

index ++;

} //消費者消費

public synchronized product pop() catch (interruptedexception e)

} this.notifyall();

return arrpd[--index]; }}

class producer implements runnable

public void run() catch (interruptedexception e)

} }}class customer implements runnable

public void run() catch (interruptedexception e)

} }}

生產者 消費者模式 Java多執行緒同步

當多個執行緒併發訪問同乙個資源時,可使用生產者 消費者模式解決,通常有訊號燈法和管程法,本文使用訊號燈法實現,其基本思想為 生產者生產時,消費者等待,生產結束後通知消費者消費 消費者消費時,生產者等待,消費完後通知生產者生產。需要object類中wait 方法和notify 或者notifyall ...

java 執行緒同步問題之生產者消費者問題

public class producerandconsumer catch interruptedexception e flag true 設定生產好標誌為true notifyall 通知消費者消費 public synchronized void take int number catch ...

Java執行緒同步例項 生產者 消費者問題分析

package thread.wait.notify public class test1 class wotou class producer implements runnable public void run catch interruptedexception e class consum...