为什么我的生产者-消费者Lua协程实验没有产生期望的结果?

我创建了以下两个协程(生产者和消费者),以尝试学习/了解协程。

输出结果是:

我期望输出打印出从1到10的数字。为什么不会发生这种情况,这是否是使用协程的正确方式?

点赞
用户107090
用户107090

一个协程从它 yield(或紧接着其后)的地方恢复执行,而不是从开头开始。

你的 printNumber 代码没有改变 number,所以得到的输出并不奇怪。

为了解决这个问题,在 printNumber 中使用 number = coroutine.yield()

传递给 resume 的参数由 yield 返回。

2015-04-14 12:40:52