–协同程序同线程差不多,就是一条执行序列,
–拥有自己独立的栈、局部变量和指令指针,
–同时又其他的协同程序共享全局变量和其他大部分东西协同
–协同程序的四种状态:挂起(suspended)、运行(running)、死亡(dead)、正常(normal)
–拥有自己独立的栈、局部变量和指令指针,
–同时又其他的协同程序共享全局变量和其他大部分东西协同
–协同程序的四种状态:挂起(suspended)、运行(running)、死亡(dead)、正常(normal)
–coroutine.resume()启动或者再次启动协同程序
co=coroutine.create(function() print(“hello!”) end)
print(coroutine.status(co)) –suspended
coroutine.resume(co) –hello!
print(coroutine.status(co)) –dead
print(“———————–“)
co=coroutine.create(function()
for i=1,10 do
print(“co”,i)
coroutine.yield()
end
end)
coroutine.resume(co) –co 1
print(coroutine.status(co)) –suspended
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co) –co 10
coroutine.resume(co) –什么都不打印了
print(coroutine.status(co)) –这时候coroutine处于死亡状态
co=coroutine.create(function() print(“hello!”) end)
print(coroutine.status(co)) –suspended
coroutine.resume(co) –hello!
print(coroutine.status(co)) –dead
print(“———————–“)
co=coroutine.create(function()
for i=1,10 do
print(“co”,i)
coroutine.yield()
end
end)
coroutine.resume(co) –co 1
print(coroutine.status(co)) –suspended
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co)
coroutine.resume(co) –co 10
coroutine.resume(co) –什么都不打印了
print(coroutine.status(co)) –这时候coroutine处于死亡状态