青山烬 2024-07-05 09:18 采纳率: 0%
浏览 5

QT中多线程并行的时间问题

img


任务量都是一样的,只是从容器中读取数据不涉及到资源竞争的问题,为什么单个线程执行完四个任务用的时间与分离四个线程进行四个任务消耗的时间大致差不多。当只释放一个线程去执行任务时只需要1ms,当释放俩个线程执行俩个任务时,各自需要平均5ms。是什么原因导致的,如何解决

  • 写回答

2条回答 默认 最新

  • 火花20180731 2024-07-08 10:10
    关注

    首先你的多个线程是否会读取同一个容器的数据,如果有则存在资源竞争,加互斥锁后,会产生锁的阻塞时延,如果只是读数据不涉及容器删除操作或许用读写锁会好些,或者在一开始就把数据分别添加到不同线程自己的容器中,而不是公用容器。
    其次,你的线程是否涉及文件读写,多线程执行文件读写操作,会导致磁盘磁头反复切换,徒增文件读写耗时。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月5日

悬赏问题

  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题