- 主题:C++的异步模型以后就是sender/receiver这个框架了
 那几个函数就是如此。
【 在 liangyue 的大作中提到: 】
: 曾经用过一套库,好像是st-thread之类的,
: 底层部分实现,手工用汇编存储几个寄存器的值,再用setjmp, longjmp切换,效率更高。
: 
--
FROM 221.218.61.*
担心的是各种CPU不兼容,有些新寄存器没有保存,协处理器任务未完成等等。
【 在 RichyMong 的大作中提到: 】
: 其实看看boost协程就知道了啊, 信号相关、一些寄存器处理
--
FROM 221.218.61.*
性能能差多少?怎么差的?难道它们不保存现场?不恢复现场?这4个函数就干了这么点事,还能怎么省?
性能,跟有栈无栈有关系吗?那只在初始化时分配一下,销毁时回收一下,一般切换跟有栈无栈没关系啊。
【 在 deusomax 的大作中提到: 】
: 性能确实不行,你去看看boost的fiber,比它强。
: btw,有栈协程都不行,即使fiber也不中用。
: 真正行的就是C++20的coroutine,但是一般人没那个本事驾驭,哈哈。
--
FROM 221.218.61.*
真不懂,不保存现场怎么能切换回来?
请科普一下。
【 在 deusomax 的大作中提到: 】
: 看来你真是外行啊,它确实真的千真万确地“不保存”,达夫法则了解一下,哈哈。
--
FROM 221.218.61.*
嗨,我以为啥高深技术,这法则我们几十年前就用,跟协程没关系。
要说接近的技术,就是longjmp,对现场不充分保存,可能会快一点点。
4个函数的协程,也就是调用函数会有一点开销,要优化的话,可以用宏。
现场是必须保存的。
另外,协程的主要用途是异步IO同步化,其他开销大了去了,不在乎这点开销。
【 在 deusomax 的大作中提到: 】
: 看来你真是外行啊,它确实真的千真万确地“不保存”,达夫法则了解一下,哈哈。
--
修改:ylh1969 FROM 221.218.61.*
FROM 221.218.61.*