VS与c++中的线程问题

Problems with threading in VS with c++

本文关键字:线程 问题 c++ VS      更新时间:2023-10-16

我需要你的帮助。我在一个程序上工作,它应该以25fps的速度抓取图片,并以20ms的速度编辑每张图片。我为此构建了一个示例程序,它在for循环中经历了一个while循环(工作时间约为19-20毫秒,这是可以的)。然后我把整件事弄得这么稳定。我必须同时处理12条线。问题是在我的评估中,在8个小时的测试中,我变成了3-5个30-40毫秒的值,我不知道为什么。我也已经尝试了c++11并行线程的整个事情,并成为相同的时间值。我在一台戴尔服务器上工作,它有2个处理器和16个CPU。谢谢你的帮助。

这里的问题是Windows(以及大多数Linux变体)不是一个实时操作系统。因此,您不能保证有一致的最大任务时间。任何外部输入都可能使线程在短时间或长时间内处于停顿状态。即使您将线程工作时间降低到1-2毫秒,您仍然可能遇到> 20毫秒运行时间的情况。您的解决方案是:要么使用实时操作系统,要么制定允许周期性更长时间延迟的规定(这更多是一个设计问题)。