这个C++20标准下的协程恢复线程不确定。
如果协程上下文都refer了某个tls,那么await前后看到的tls实际上可能是不同的变量。
虽然名字相同,代码就隔了一个await,但执行起来千差万别,这对用户来说是真·天坑。
而且协程可以挂起后在await_suspend()中让另一个线程立刻启动协程,使得当前this可能被立即销毁。
这对库的编写者也是大坑,不过普通用户不用关切这个。
看了这么些文档,我对那个cppcoro的event设计比较喜欢
无锁无风险,算是赏心悦目。比condition_variable好用多了。
【 在 z16166 的大作中提到: 】
: 在加锁上,感觉多线程执行协程可能是个噩梦?
: 如果A1,A2,...,An这些协程都可能在t1,t2,...,tn这些线程上执行,那么访问共享资源时直接无脑全部加锁就行,
: 怕的就是一组协程G1在一个线程t1上执行,而另外一组协程G2在另外一个不同的线程t2上执行,G1和G2这两个协程组之间访问共享资源时需要加锁,协程组内的资源不需要加锁。
: ...................
--
修改:allegro FROM 158.140.1.*
FROM 158.140.1.*