关于#c++#的问题:为什么多线程更慢

img


图中左边是asyn函数的代码 右边是运行结果 单线程运行ls命令花费15毫秒 多线程用时25毫秒 整个函数已经最简化 没有多余的干扰了

大多数多线程是假的多线程,一个CPU在多个线程中来回切换运行,让用户觉得感觉是并行在做。实际上比单线程多了更多的CPU切换时间。想要做到多线程比单线程快,那么得多核的系统运行,并且线程数量太多也会使整体变慢

举个例子:3块砖安排3辆车去装,你说会更快吗;3万块,300万块呢,安排的车多就会快了

以下是个人的理解,如果有不当之处请指教:
多线程因为增加了线程调度的时间,所以表现出来会比单线程慢。
那什么情况下需要多线程呢?当需要异步完成某些工作的时候,比如:程序需要边接收数据边处理;程序需要边处理边响应界面操作。