阻塞佇列之生產者與消費者

2022-09-13 14:33:14 字數 730 閱讀 3891

前段時間因為專案中對生產者與消費者的需求,故整理了一下對阻塞佇列。

不說了,直接上**

public class blockingqueuetest

public void run() catch (interruptedexception e) }}

public void shutdown()

}//消費者

public static class consumer implements runnable

public void run() catch (interruptedexception e) }}

public void shutdown()

}public static void main(string args)else

}try catch (interruptedexception e)

producer.shutdown();

consumer.shutdown();}}

一看,大多清晰了,但一關電腦,又忘了! 總結是因為對執行緒的使用為理解透,清理一下思路,阻塞佇列,需要執行緒吧,實現runnable介面,變數相同,阻塞佇列屬性,blockingqueue,變數標示符flag,記住,因為是執行緒,

這個變數有改變,一改變是不是要同步主存的值,那就應該有volatile;執行執行緒,生產者生產元素,消費者消費元素。

瞬間清晰了 。。。

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

生產者與消費者

include include include include include include define size of buffer 10 int buffer size of buffer 緩衝陣列 int in 0,out 0 採用迴圈佇列方式進行陣列的訪問 宣告訊號量 sem t ful...

生產者與消費者

include include include include include include handle mutex 互斥訊號量 handle full 滿緩衝區訊號量計數 handle empty 空緩衝區訊號量計數 void producer 生產者函式 void consumer 消費者函...