lua生産者-消費者学習
1034 ワード
第九章を読み続けますが、今回は英語版を見ています.読むのは難しくありません.コードを少し勉強します.
典型的な生産者-消費者モデル:
produter生成Salt,consumer消費:
実行結果:
>lua -e "io.stdout:setvbuf 'no'""cor.lua" running: true ,produtc: 11 ,salt: 10 running: true ,produtc: 102 ,salt: 100 running: true ,produtc: 10003,salt: 10000 running: true ,produtc: nil ,salt: 100000000 >Exit code: 0
luaの関数の戻り値はまだ卵が痛いので、私を見てやっと分かりました.
典型的な生産者-消費者モデル:
produter生成Salt,consumer消費:
--
local function producer()
return coroutine.create(
function(salt)
local t = {1,2,3}
for i = 1,#t do
salt = coroutine.yield(t[i] + salt)
--salt consumer
print('producer salt',salt)
end
end
)
end
function consumer(prod)
local salt = 10
while true do
local running ,product = coroutine.resume(prod, salt) --salt producer coroutine.yield ,salt producer salt
if running == false then
return
else
print('running:',running,',produtc:',product,',salt:',salt)
salt = salt*salt
end
end
end
consumer(producer())
実行結果:
>lua -e "io.stdout:setvbuf 'no'""cor.lua" running: true ,produtc: 11 ,salt: 10 running: true ,produtc: 102 ,salt: 100 running: true ,produtc: 10003,salt: 10000 running: true ,produtc: nil ,salt: 100000000 >Exit code: 0
luaの関数の戻り値はまだ卵が痛いので、私を見てやっと分かりました.