function foo (a)
print("foo", a)
return coroutine.yield(2*a)
end
co = coroutine.create(function (a,b)
print("co-body", a, b)
local r = foo(a+1)
print("co-body", r)
local r, s = coroutine.yield(a+b, a-b)
print("co-body", r, s)
return b, "end"
end)
print("main", coroutine.resume(co, 1, 10))
print("main", coroutine.resume(co, "r"))
print("main", coroutine.resume(co, "x", "y"))
print("main", coroutine.resume(co, "x", "y"))
当你运行它,将得到如下输出结果:
co-body 1 10
foo 2
main true 4
co-body r
main true 11 -9
co-body x y
main true 10 end
main false cannot resume dead coroutine
coroutine.create 被创建
coroutine.yield 打断运行的程序 返回传入的参数
coroutine.resume运行,如果被打断,从上次打断处继续运行,返回true false
转载于:https://www.cnblogs.com/ad-1990/p/4121918.html
相关资源:基于协同过滤算法的电影推荐系统