Lua 协程
发布时间:2020-12-14 22:03:22 所属栏目:大数据 来源:网络整理
导读:Lua中的协程和其他变量一样,都是第一类值(first-class alue),可以被保存在变量中,可以被作为参数传递,可以被函数返回。 协程有4种状态:挂起(suspended),运行(running),死亡(dead)和正常(normal)。 Lua为协程提供了3个基础接口:create,res
Lua中的协程和其他变量一样,都是第一类值(first-class alue),可以被保存在变量中,可以被作为参数传递,可以被函数返回。 coroutine.create
coroutine.resume
coroutine.yield
协程间通信
实验 状态local function status(str,c) print(str,coroutine.status(c)) end local c1,c2 c1 = coroutine.create(function() status("<c2>",c2) print("before c1 yield") coroutine.yield() "after c1 yield") end) c2 = "before c2 resume c1") coroutine.resume(c1) "after c2 resume c1") end) status(coroutine.resume(c2) status("<c1>",c1) status(coroutine.resume(c1) status( 输出:outsky@x201:~/tmp$ lua test.lua <c2> suspended <c2> running before c2 resume c1 <c2> normal before c1 yield after c2 resume c1 <c1> suspended <c2> dead after c1 yield <c1> dead :~/tmp$ lua test.lua main start c c start: main start c main resume return: c yield -------- main resume c c yield return: main resume c main resume return again: c dead (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |