定義和啟動
--lua裡面的協同程式(coroutine)
--暫定函式,可以掛起,可以一步一步的執行,可以暫停
--第一種定義,啟動
--1、定義協同程式(coroutine.create)
co=coroutine.create(
function (a,b)
print(a+b)
end)--2、啟動協程(coroutine.resume)
coroutine.resume(co,10,20)
--第二種定義,啟動
--1、定義協同程式(coroutine.wrap)
co=coroutine.wrap(
function (a,b)
print(a+b)
end)--2、啟動協程(coroutine.resume)
co()
coroutine.yield()–掛起函式 coroutine.resume(co)-- 繼續執行協程
--1、定義協程coroutine.create
--2、啟動協程coroutine.resume()可以傳遞引數
--3、暫定協程coroutine.yield
--4、繼續執行協程coroutine.resume (不需要傳遞引數可以)
co=coroutine.create(
function (a,b)
print(a+b)
coroutine.yield()--掛起函式
print(a-b)
end)coroutine.resume(co,10,20)
print("call over")
coroutine.resume(co)-- 繼續執行協程
--執行了print(a-b)
協同程式的返回值
co=coroutine.create(
function (a,b)
print(a+b)
coroutine.yield('暫定時候的返回值放在這裡')--掛起函式
print(a-b)
return "coroutine over",400,'最後的返回值'
end)res,res1=coroutine.resume(co,10,20)
print(res)--第乙個返回值(都是bool值,代表是否成功啟動了協同程式)
print(res1)--第二個返回值
print("call over")
res2,res3,res4=coroutine.resume(co)-- 繼續執行協程
print(res2)--第乙個返回值
print(res3)--第二個返回值
print(res4)--第三個返回值
coroutine.status(co) 檢視協程的執行狀態(dead之後,協程沒法重寫啟動執行了)
co=coroutine.create(
function (a,b)
print(a+b)
print('1:'..coroutine.status(co))--結果為running 的時候,只有在協程內部
coroutine.yield('暫定時候的返回值放在這裡')--掛起函式
print('2:'..coroutine.status(co))
print(a-b)
print('3:'..coroutine.status(co))
end)print('4:'..coroutine.status(co)) --結果suspended(暫停的,還未啟動的),啟動之前
res,res1=coroutine.resume(co,10,20)
print('5:'..coroutine.status(co))--結果suspended,還是暫停的,暫停的時候
res2,res3,res4=coroutine.resume(co)-- 繼續執行協程
print('6:'..coroutine.status(co))
輸出結果:
4:suspended
301:running
5:suspended
2:running
-103:running
6:dead
lua coroutine 引數說明
co 1 2 out true 3 co 4 out true 5 out false local status,returnvs coroutine.resume co,params co 為 所要啟動的協程。第一次呼叫co 時 params 為co函式入口處的引數。非首次呼叫時,params作為...
協同辦公協同的到底是什麼?
偶然間想到這個問題,於是便試著去回答。從字面理解,協同就是共同協作,也就是說協同辦公作用的物件是兩個或者多個個體,這些物件共同處理完成某項工作或某個任務。可仔細一想不對啊,很多的工作是不需要多個人去合作完成的,比如說我,我是文案人員,所以我只需要把東西寫好就可以了,根本不需要跟別人合作嘛。那協同辦公...
邊雲協同的優點 邊雲協同
邊雲協同解決方案 邊雲協同解決方案,基於雲原生的開放架構,構建邊雲業務協同能力。打造面向5g ai時代的ict基礎設施,助力企業客戶實現數位化轉型。邊雲協同解決方案 邊雲協同解決方案,基於雲原生的開放架構,構建邊雲業務協同能力。打造面向5g ai時代的ict基礎設施,助力企業客戶實現數位化轉型。邊雲...