思路分析:
1、兩個執行緒、乙個生產、乙個消費,要保證可見性,所以需要volatile
2、多執行緒下要保證原子性,所以生產消費的資料用iatomicnteger
3、使用那種阻塞佇列需要依賴傳入的引數來決定,所以構造傳介面進來
4、使用阻塞佇列中包含超時的offer、poll
**實現:
/**
* @title: myresource
* @description: 實現生產-消費者
* @author:quliangquan
* @date 2019/8/16 16:22
**///資源類
public
class
myresource
public
void
myprod()
throws exception
else
timeunit.seconds.
sleep(1
);} system.out.
println
(thread.
currentthread()
.getname()
+" 叫停了、不生產了");
}public
void
myconsumer()
throws exception
system.out.
println
(thread.
currentthread()
.getname()
+" 消費 "
+ res +
" 成功");
}}public
void
stop()
public
static
void
main
(string[
] args)
throws exception
catch
(exception e)},
"prod").
start()
;new
thread((
)->
catch
(exception e)},
"consumer").
start()
; timeunit.seconds.
sleep(5
);system.out.
println
("叫停");
myresource.
stop()
;}}
物件導向寫生產者與消費者的例子(java)
生產者 消費者 producer consumer 問題是乙個著名的程序同步問題。它描述的是 有乙個生產者程序在生產產品,並將這些產品提供給消費者程序去消費。為使生產者程序與消費者程序併發執行,在兩者之間設定了乙個具有n個緩衝池,生產者程序將它所生產的產品放入乙個緩衝區中 消費者程序從乙個緩衝區中取...
阻塞佇列之生產者與消費者
前段時間因為專案中對生產者與消費者的需求,故整理了一下對阻塞佇列。不說了,直接上 public class blockingqueuetest public void run catch interruptedexception e public void shutdown 消費者 public s...
vc實現生產者消費者
生產者消費者問題是乙個著名的程序同步問題。它的描述是 有一群生產者程序在生產產品,並將這些產品提供給消費者程序去消費。為使生產者程序與消費者程序能併發執行,在兩者之間設定了乙個具有n個緩衝區的緩衝池,生產者程序將它所生產的產品放入乙個緩衝區中 消費者程序可從緩衝區中取走產品去消費。儘管所有的生產者程...