print
("************協同程式************"
)print
("************協程的建立************"
)--常用方式
-- coroutine.create()
fun =
function()
print
(123
)end
co = coroutine.
create
(fun)
--協程的本質是乙個執行緒物件
print
(co)
print
(type
(co)
)--coroutine.wrap()
co2 = coroutine.
wrap
(fun)
print
(type
(co2)
)print
("************協程的執行************"
)--第一種方式 對應的 是通過 create建立的協程
coroutine.
resume
(co)
--第二種方式
co2(
)print
("************協程的掛起************"
)fun2 =
function()
local x =
1while
true
doprint
(x) x = x +
1--協程的掛起函式
print
(coroutine.
status
(con3)
) coroutine.
yield
(x)end
endcon3 = coroutine.
create
(fun2)
--預設第乙個返回值是協程是否啟動成功
--第二個才是yield裡的返回值
tempi,temp2= coroutine.
resume
(con3)
print
(temp2)
coroutine.
resume
(con3)
coroutine.
resume
(con3)
coroutine.
resume
(con3)
--這種方式的協程呼叫 也可以有返回值 只是沒有預設的第乙個返回值了
co4 = coroutine.
wrap
(fun2)
print
(co4()
)co4()
co4(
)co4()
print
("************協程的狀態************"
)--coroutine.status(協程物件)
--dead 結束
--suspended 暫停
--running 進行中
--print(coroutine.status(co2))
print
(coroutine.
status
(co)
)
Lua協程例子
lua的協程是好東西,跟unity的協程還是不太一樣,下面寫了乙個例子,直接上 co coroutine.create function body print hi coroutine end print type co print coroutine.status co coroutine.res...
Lua 程式設計 協程
乙個協程 coroutine 與執行緒 thread,這裡指 多執行緒 中的執行緒 類似 它是乙個執行序列,擁有自己的棧,區域性變數,指令指標,但是與其他的協程共享全域性變數和其他大部分東西。從概念上講,協程與執行緒最大的區別是 在乙個多處理器機器上,乙個多執行緒程式可以並行地執行多個執行緒。而協程...
lua協程再探
lua語言的協程中yield關鍵字可以掛起當前coroutine執行,並暫時儲存臨時變數值,該值即是第二次呼叫 resume 時傳入的引數!co coroutine.create function value1,value2 local tempvar3 10 print coroutine sec...