协同

it2025-01-21  22

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

相关资源:基于协同过滤算法的电影推荐系统
最新回复(0)