我有一个程序正在做一些非常有趣的事情。基本上我有三个主线程,所有线程都很忙,问题线程基本上有一个看起来像这样的 while 循环:
while(variable which is always true) {
get some data;
process data;
print message;
}
print end message;
现在打印消息在前 400 轮中被打印,但在此之后线程停止运行。我已经尝试将此线程设为高优先级。我试过降低其他线程的优先级。最奇怪的是,这是以前工作的,而在调试另一个问题(仅使用 print 语句完成)时,它开始间歇性地发生。现在它已经成为永久性的,因为它每次都会发生。
暂时解决它的事情(然后它似乎再次停止工作)是:
降低其他线程中打印语句的级别。
降低其他线程的优先级。
在不同的时间运行。
作为免责声明,我正在使用一个名为 QNX 的实时操作系统,这可能会直接导致问题。我希望不是这样,否则我们有一个大核心 i7 并且无法使用线程。
不幸的是,代码很长而且是为了工作,所以我真的不应该发布它。我希望得到帮助,这将指向我自己解决问题的正确方向。有谁知道可能导致这些症状的问题?