读万卷书行万米路 2022-07-23 17:30 采纳率: 50%
浏览 59
已结题

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

img


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

  • 写回答

3条回答 默认 最新

  • superSmart_Dong 2022-07-24 06:09
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    读万卷书行万米路 2022-07-24 14:38

    我尝试强制异步延迟执行发现执行顺序是非常规矩的 就是1 2 3 4号任务一个一个运行 感觉你这个说法和我的猜想最接近 但是怎么能够验证这个事情呢 而且我手上有一个非常巨大的计算任务 计算量几十小时起步 之前用python测试大概是一千小时以上 这个能用异步优化吗

    回复
    读万卷书行万米路 回复 读万卷书行万米路 2022-07-24 14:39

    忘了说了 电脑就俩核 从来没见过同时加负载 那俩核就是轮流工作的

    回复
    superSmart_Dong 回复 读万卷书行万米路 2022-07-24 16:02

    非常巨大的计算任务在 企业级项目 的做法通常是采用分布式。在代码无法优化的前提下,增加机器,或者提升配置是少不了的。就是把一个大任务拆分成多个独立的子任务,让多个机器取完成不同的子任务。例如有一万组输入数据放在某个共享文件中,将这一万组数据拆分成10个一千组输入数据的文件。分别给多台机器去完成

    回复
    展开全部5条评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月31日
  • 已采纳回答 7月24日
  • 修改了问题 7月23日
  • 创建了问题 7月23日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部