转自http://blog.csdn.net/wusheng520/article/details/7954666
一、基本环境:
Microsoft Windows XP/Service Pack 2
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
二、 coroutine的接口:
(1) coroutine.create()
(2) coroutine.resume()
(3) coroutine.yield()
(4) coroutine.status()
(5) coroutine.wrap()
(6) coroutine.running()
三、coroutine的状态分为suspend, running, dead三种。
四、coroutine的基本流程
下面的代码说明了coroutine的基本流程
- co = coroutine.create(function(a, b)
- print(coroutine.status(co), "start") --执行代码,coroutine状态为running--->(3)
- print("co", a, b)
- print(coroutine.status(co), "end") --执行代码,coroutine状态为running --->(4)
- end)
-
- print(coroutine.status(co)) --刚创建的coroutine的状态为suspend --->(1)
- coroutine.resume(co, 1, 2) --启动coroutine,将跳转到coroutine的function执行 --->(2)
- print(coroutine.status(co)) --coroutine执行完毕,状态为dead --->(5)
代码的执行结果如下:
- >lua -e "io.stdout:setvbuf 'no'" "cur.lua"
- suspended
- running start
- co 1 2
- running end
- dead