多執行緒之生產者消費者模型詳解

2021-10-10 01:14:45 字數 1669 閱讀 2805

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.當生產者生產...