生產者消費者

2022-08-28 20:12:17 字數 598 閱讀 7156

現在我就使用lua的協同程式來完成生產者-消費者這一經典問題。

local newproductor

function productor()

local i = 0

while true do

i = i + 1

send(i)     -- 將生產的物品傳送給消費者

endend

function consumer()

while true do

local i = receive()     -- 從生產者那裡得到物品

print(i)

endend

function receive()

local status, value = coroutine.resume(newproductor)

return value

endfunction send(x)

coroutine.yield(x)     -- x表示需要傳送的值,值返回以後,就掛起該協同程式

end-- 啟動程式

newproductor = coroutine.create(productor)

consumer()

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

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

生產者消費者

using system using system.collections.generic using system.threading namespace gmservice foreach thread thread in producers q.exit console.read public...

生產者消費者

執行緒通訊 乙個執行緒完成了自己的任務時,要通知另外乙個執行緒去完成另外乙個任務.wait 等待 如果執行緒執行了wait方法,那麼該執行緒會進入等待的狀態,等待狀態下的執行緒必須要被其他執行緒呼叫notify方法才能喚醒。notify 喚醒 喚醒執行緒池等待執行緒其中的乙個。notifyall 喚...