public
static
void
main
(string[
] args)
}//4.建立消費者執行緒
class
consumerthread
extends
thread
@override
public
void
run(
)catch
(interruptedexception e)}}
}//3.建立生產者執行緒
class
producerthread
extends
thread
@override
public
void
run()}
catch
(interruptedexception e)}}
//2.定義乙個商店類(相當於乙個緩衝區)
class
shop
//此處flag=false,表示要生產
system.out.
println
(thread.
currentthread()
.getname()
+"生產了"
+phone.name)
;//模擬商店進貨
this
.phone = phone;
//改變商品狀態
flag =
true
;//通知消費者消費
notify()
;}/** * 出貨(消費)
*/public synchronized void
getproduct
() throws interruptedexception
//此處的flag = true
system.out.
println
(thread.
currentthread()
.getname()
+"消費了"
+phone.name)
;//模擬消費
this
.phone =
null
;//改變商品狀態
flag =
false
;//通知生產者
this
.notify()
;}}//1.定義乙個商品類
class
phone
列印結果:
生產者生產了小公尺手機1
消費者消費了小公尺手機1
生產者生產了小公尺手機2
消費者消費了小公尺手機2
生產者生產了小公尺手機3
消費者消費了小公尺手機3
生產者生產了小公尺手機4
消費者消費了小公尺手機4
生產者生產了小公尺手機5
消費者消費了小公尺手機5
生產者生產了小公尺手機6
消費者消費了小公尺手機6
生產者生產了小公尺手機7
消費者消費了小公尺手機7
生產者生產了小公尺手機8
消費者消費了小公尺手機8
生產者生產了小公尺手機9
消費者消費了小公尺手機9
生產者生產了小公尺手機10
消費者消費了小公尺手機10
多執行緒之生產者消費者模型
生產者消費者 乙個最簡單的模型。兩個執行緒,乙個生產者,乙個消費者,生產者負責生產,消費者負責消費。分析 同步 生產者生產了之後,消費者進行讀取資料。wait 和notify機制 互斥 生產者生產時,消費者不能進行讀取。鎖機制。public class producerandconsumer cat...
Java 多執行緒之生產者消費者模型
package com.yuanlief public class main 共享資料類 class mydata 共享資料控制類 class sharedata catch interruptedexception e this.data data writeable false 標記已經生產 n...
多執行緒之生產者與消費者模型
在這個模型中我們需要有三個主要類,分別是商品類,生產者類以及消費者類。其中執行機制和我們平時的生產者與消費者的關係機制大同小異。在這個模型中,我們需要定義乙個容器來實現消費者與生產者之間的解耦,為了更貼近實際,採用fifo原則的佇列作為容器為最佳選擇,並且此模型還遵循著以下兩條規則 1.當生產者生產...