课程demo例子日志结果如下:send 0 和receive 0没有成对出现,缺少receive 0换句话说消费者没有消费0。从代码上可以看出,第一次调用消费者consumer.resume(0),消费者协程还没有开启此时调用previousStatus.continuation.resume(Unit)开启协程然后调用yield,此时协程回到了main方法中,继续调用生产者生产出1,伺此后消费者才会调用 (previousStatus as Status.Yielded
).continuation.resume(value)回到消费者协程消费但此时消费的是1.可能我理解的不对,麻烦讲师解答下。
pool-1-thread-1 :send 0
pool-2-thread-1 :start 0
pool-1-thread-1 :send 1
pool-2-thread-1 :receive 1
pool-1-thread-1 :send 2
pool-2-thread-1 :receive 2
pool-1-thread-1 :send 3
pool-2-thread-1 :receive 3
pool-2-thread-1 :receive 200