lua的coroutine也就是協程,跟c++中的執行緒有點像,但他事順序執行的。
主要需要理解三個函式
coroutine.create()、coroutine.yield()、coroutine.resume()
create函式將建立乙個協程,其引數為所執行的函式。
function corfun(x,y)
print("run cor",x,y)
if(x)
local k = coroutine.yield(x)
print("next time resume" ,k)
else
print("end")
return y
end如 local co = coroutine.create(corfun)
建立完後這個協程是處於掛起狀態的,我們需要通過resume函式來喚醒co執行其對應的函式。
如 coroutine.resume(co,10,20)
當執行函式 有額外引數需要傳遞的時候,要在resume(co, ...) ...中填寫。
執行 coroutine.resume後會返回 (true 或false) 和 (函式執行的返回值 或 yield的引數值)
例如上面corfun ,當resume第一次的時候,由於x為10,所以會執行到 coroutine.yield此時函式將會掛起,resume獲得的返回值就為true 和 x,注意這裡不會是k,
當下一次resume的時候 k會接收resume的引數。
然後會繼續執行下去print("next time resume" ,k)這個語句
大體就是這樣
寫的比較匆忙,睡覺了。。。。。。
Storm之併發機制
為了提高storm的並行能力,通常需要設定並行。1.1 worker 程序 設定worker程序數 config.setnumworkers int workers 1.2 executor 執行緒 設定executor執行緒數 topologybuilder.setspout string id,...
Srorm併發機制
一 介紹 1.執行元件 2.併發度 就是executor數量 executor執行緒是物理執行緒 task是執行執行緒 二 增加併發度 三 worker層次 1.worker工作程序上 各個spout元件 bolt元件如果在 中沒有顯式指定由多少個executor執行緒來執行,那麼預設各由1個exe...
事務併發機制
注 原文 原子性 atomic 事務必須是原子工作單元 一致性 consistent 事務在完成時,必須使所有的資料都保持一致狀態。隔離性 insulation 由事務併發所作的修改必須與任何其它併發事務所作的修改隔離。永續性 duration 事務完成之後,它對於系統的影響是永久性的。通常為了獲得...