我在我的大学里为研究问题编写Java代码,每当我尝试运行我为多线程设置的代码时,例如问题中长时间运行的数据处理步骤,我的计算机将半随机关掉。我半随机说,因为虽然它通常非常一致,但它有时不会关闭计算机。计算机将重新启动,就像没有发生任何事情(没有“Windows没有正确关闭”废话)。
例如,我正在进行一些Multilabel分类研究,并希望对其中的一部分进行多线程处理。我将限制设置为10个并发线程,应用程序运行正常。我将限制提高到20,计算机关闭。现在,逻辑将决定我可以将其设置为10并且它将再次正常运行。但事实并非如此。当我将其设置为10时,它再次关闭。
有人可能会出现过热问题,但如果是这样的话,Windows会给出“这没有正确关闭”的消息,而事实并非如此。此外,我可以在完全冷却的计算机上运行它,它仍然会立即关闭。
有人可能认为它也可能是一个死锁问题,但我很确定我解决了可能导致死锁的代码的任何部分(此外,我严重怀疑会导致计算机关闭)。
这非常烦人,并且希望有人之前听说过这个问题,或者知道可能的解决方案。我写的其他应用程序有时会遇到同样的问题,它似乎是完全随机的(但一旦发生一次就会保持一致)。
(我会提出代码,但它似乎不依赖于代码。此外,代码很长,有点烦人的阅读)。
编辑:检查热量增加。在所有四个处理器上运行一秒钟可将热量从86增加到97C。所以,这可能是一个过热的问题。很难相信它会如此迅速地增加。
答案 0 :(得分:0)
我有同样的问题!!很高兴不仅仅是我一直都在发疯。 :)这是因为笔记本电脑过热。我不知道为什么,但它会用Java多线程来做到这一点。我的意思是我有时会看高清电影,游戏,它很热,但它不会关闭。但是,只要进行一些Java多线程(或工具包中的Message Broker编译),它就会立即关闭。这是i5戴尔顺便说一句。我换了两次 - 没有成功。发表在戴尔论坛上,大家都以为我疯了,既然不可能发生,显然他们错了!救了我的东西是一台新的笔记本电脑。希望您能以更便宜的方式解决问题。
还有一件事,在我目前的笔记本电脑上,一台带有Linux的Macbook,我控制了粉丝,我编写了一个可以控制风扇速度的脚本。也许你有这个选择吗?
干杯,尤金。