有這樣乙個需求,每當乙個生產機器生產出乙個麵包的時候,要等消費者消費完了再繼續生產.
package com.ancely.fyw;
public class fooddemo catch (interruptedexception e) }}
public synchronized void outfood() catch (interruptedexception e) }}
public static class productthread extends thread
@override
public void run() }}
public static class consumethread extends thread
@override
public void run() }}
public static void main(string args)
}
列印結果如下
thread-0 生產者: 生產了: 1
thread-1 >>>>>>>>>>>>>消費者: 消費了: 1
thread-0 生產者: 生產了: 2
thread-1 >>>>>>>>>>>>>消費者: 消費了: 2
thread-0 生產者: 生產了: 3
thread-1 >>>>>>>>>>>>>消費者: 消費了: 3
thread-0 生產者: 生產了: 4
thread-1 >>>>>>>>>>>>>消費者: 消費了: 4
thread-0 生產者: 生產了: 5
thread-1 >>>>>>>>>>>>>消費者: 消費了: 5
thread-0 生產者: 生產了: 6
thread-1 >>>>>>>>>>>>>消費者: 消費了: 6
thread-0 生產者: 生產了: 7
thread-1 >>>>>>>>>>>>>消費者: 消費了: 7
thread-0 生產者: 生產了: 8
thread-1 >>>>>>>>>>>>>消費者: 消費了: 8
thread-0 生產者: 生產了: 9
thread-1 >>>>>>>>>>>>>消費者: 消費了: 9
thread-0 生產者: 生產了: 10
thread-1 >>>>>>>>>>>>>消費者: 消費了: 10
thread-0 生產者: 生產了: 11
thread-1 >>>>>>>>>>>>>消費者: 消費了: 11
thread-0 生產者: 生產了: 12
thread-1 >>>>>>>>>>>>>消費者: 消費了: 12
thread-0 生產者: 生產了: 13
thread-1 >>>>>>>>>>>>>消費者: 消費了: 13
thread-0 生產者: 生產了: 14
thread-1 >>>>>>>>>>>>>消費者: 消費了: 14
thread-0 生產者: 生產了: 15
thread-1 >>>>>>>>>>>>>消費者: 消費了: 15
thread-0 生產者: 生產了: 16
thread-1 >>>>>>>>>>>>>消費者: 消費了: 16
thread-0 生產者: 生產了: 17
thread-1 >>>>>>>>>>>>>消費者: 消費了: 17
thread-0 生產者: 生產了: 18
thread-1 >>>>>>>>>>>>>消費者: 消費了: 18
thread-0 生產者: 生產了: 19
thread-1 >>>>>>>>>>>>>消費者: 消費了: 19
thread-0 生產者: 生產了: 20
thread-1 >>>>>>>>>>>>>消費者: 消費了: 20
多執行緒 生產者消費者
這個就不多說了,直接上 include include using namespace std const unsigned short size of buffer 10 緩衝區長度 unsigned short productid 0 產品號 unsigned short consumeid 0...
Linux多執行緒 生產者消費者
生產者消費者問題 這是乙個非常經典的多執行緒題目,題目大意如下 有乙個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定乙個有多個緩衝區的緩衝池,生產者將它生產的產品放入乙個緩衝區中,消費者可以從緩衝區中取走產品進行消費,所有生產者和消費者都是非同步...
多執行緒 生產者消費者佇列
就以alibaba的筆試題舉例吧。題目大概的意思如下 有乙個籃子,最多容納5個蘋果。有人一直往裡放蘋果。有人一直去蘋果。寫出實現。ali要求不能用concurrent包裡面的東西,所以只能用最簡單的notify和wait。如果可以用concurrent包裡面的東西,還可以用blockingqueue...