这个MyClass会一直存在,放个reference方便后续处理。
我想用协程实现个线程池驱动的最简单的actor model,写了几天都没写好,真是水平有限。
另外没太读懂你的回复。
我一直比较注意变量的生命周期,能放到{}中决不留在外边。
但是我觉得协程并不能改进变量生命周期问题?
一个变量如果用回调函数时,需要在回调函数中结束生命周期
那么改成协程时候,它也会跨越协程的suspend point,从而被分配在协程frame里?
std::string s = xxx;
f(s)
auto callback = [s=std::move(s)](){ g(s); }; // s 在当前stack和callback中都需要
do(xxx, callback);
那么换到协程中,s会分配在coroutine frame上。
std::string s = xxx; // s被分派在协程frame
f(s);
co_await d(xxx); // s 跨越了suspend point
g(s);
【 在 hgoldfish 的大作中提到: 】
: 搞协程就是为了代替 Promise 这一些麻烦的回调。
: 没了回调以后,变量不容易跳出函数的生命周期,所以 RAII 即可管理内存。大多数变量可以申请在栈上面。好处很多。
: 为啥你这里要把两者放在一起用呢?丧失我说的这些好处。不太理解。
: ...................
--
修改:allegro FROM 61.188.76.*
FROM 61.188.76.*