感觉cpp coroutine还有一个巨大的差别是,coroutine需要指定下一个coroutine,就像你切换函数一样,要么指定另一个coroutine,要么return
而fiber和thread只有yield语义。就像你在thread内部从来不会说,去切换到tid是A的那个thread
【 在 Maksim 的大作中提到: 】
: 虽然从最底层的实现上,coroutine 和 thread 类似,但他们对开发者暴露的用途不一样.
:
: coroutine 很重要的一点是提供了在一个线程内部不同 task 间轻量级的切换。在线程内部,用户就可以根据自己的需求来协调。外部来看仍一个线程pin在一个 core 上满载,最大化性能。这个理念,在现代高性能事务处理里很常见。比如,事务A想拿锁,看到已经被事务B占了,事务A必须要 yield。这里A,B 和锁的结构可以都在一个线程内部,没有 I/O,但还是有逻辑上的 block和 yield。
: ....................
- 来自「最水木 for iPad Air (3rd generation)」
--
FROM 75.31.75.*