gpt4 book ai didi

c++ - 线程在 while 循环中间随机停止

转载 作者:太空狗 更新时间:2023-10-29 21:25:49 25 4
gpt4 key购买 nike

我有一个程序正在做一些非常有趣的事情。基本上我有三个主线程,它们都很忙,问题线程基本上有一个 while 循环,如下所示:

while(variable which is always true) {
get some data;
process data;
print message;
}
print end message;

现在,打印消息在大约前 400 轮中打印出来,但在此之后线程就停止运行。我已尝试将此线程设置为高优先级。我试过降低其他线程的优先级。最奇怪的是,这在以前是有效的,而在调试另一个问题(仅使用 print 语句完成)时,它开始间歇性地发生。现在它已成为永久性的,因为它每次都会发生。

暂时解决它的事情(然后它似乎又停止工作了)是:

  1. 减少其他线程中打印语句的级别。

  2. 降低其他线程的优先级。

  3. 在不同的时间运行。

作为免责声明,我使用的是名为 QNX 的实时操作系统,它可能会直接导致问题。我希望不是这样,否则我们有一个大核心 i7 并且无法使用线程。

不幸的是代码很长而且是为了工作所以我真的不应该发布它。我希望得到帮助,可以为我指明正确的方向,让我自己解决问题。有谁知道可能导致这些症状的问题?

最佳答案

这听起来很像竞争条件。
确保在任何情况下都不会出现未正确解锁锁定的互斥锁的情况,因为这可能会导致死锁。
不幸的是,调试线程问题非常复杂,因此您几乎只能靠自己了。

关于c++ - 线程在 while 循环中间随机停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com