基于callback的异步方式很多槽点啊,虽然写习惯了,但是我觉得最大的问题是callback传输数据的时候多少都存在多线程同步数据的问题,就算用lockfree结构或者atomic,cache coherence问题也无法避免
future方式的话,就你现在来说,可以
1. 单独拿个线程死读,然后再同步数据,这个嘛,就有点多余了
2. 在dosomething里,写个死读,读future结果
当然以后coroutine进标准库以后可以直接用cowait
这个是c++的发展方向,尽量在用户层面避免使用thread,能写单线程代码就写单线程代码。可能是因为现在cpu核多了以后,各种不一样的内存和cache构架。
【 在 speedboy2998 的大作中提到: 】
: 现在用一个库,对方提供的异步接口是基于 std::future的,无法理解。
: 以前使用基于 callback 函数的异步接口,我的调用现成调用完异步接口后,该干嘛干嘛,结果来了回调函数自动调用。
: 现在基于 future 的接口,返回一个 future, 我岂不是还要单独创建要给线程定时检测 future 的状态?
: ...................
--
FROM 115.193.160.*