本文主要是介绍初识协程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
--[[
协程(协同程序):
有自己的堆栈,自己的局部变量,自己的指令指针,与其他协程共享全局变量。
在多处理器的情况下,可以同时运行多个线程,但在指定的某一时刻只有一个协程在运行,
并且这个正在运行的协程在指定的时候挂起。调用resume函数会将协程由挂起状态转为运行状态
调用yield函数会将协程由运行状态转为挂起状态,并且协程会返回yield函数的参数
]]co = coroutine.create(function(a, b)print("co", a, b)coroutine.yield(a + b, a - b)print("co", a, b)
end)print(coroutine.status(co)) -- suspended
print(coroutine.resume(co, 20, 10)) -- true 30 10 :返回yield函数的参数
print(coroutine.status(co)) -- suspendedprint(coroutine.resume(co)) -- true :成功调用
print(coroutine.status(co)) -- dead :协程运行结束print(coroutine.resume(co)) -- false cannot resume dead coroutine :协程已dead
这篇关于初识协程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!