协程也就在I/O操作上才有优势,Qt事件循环,本事很多I/O已经是异步了,利用好异步(虽然都说异步有点反人类思维)。
因为CPU的执行最小单位是线程,协程也只是在其之上又调度而已。
我的意思是利用好异步的优势。
协程是程序级别的调度,对于CPU执行来说,没任何优势的。
CPU的最小执行单位是线程,单线程里十万个协程,也就一个在工作,利用不了并行优势。
对于高运算的程序,协程除了增加调度开销并没有优势的。
对于I/O操作较多的程序才有用,因为I/O太慢。而对应I/O操作,异步相对与协程开销更小,效率也更高的。
Cpp也有协程库,有的还是基于asio实现的,很多底层也是事件循环的。
而Qt本身就是事件循环的,多数I/O也是异步的,为什么不先考虑利用好异步和事件循环去优化。
协程不需要qt支持...直接用现成的协程库就行了
http://www.qtcn.org/bbs/read-htm-tid-60287.html
时间: 2024-10-12 13:31:53