2010-12-04 40 views
0

如果多线程程序在超线程单核CPU上安全运行,它是否也可以在超线程双核CPU上安全运行?关于线程安全等使用超线程技术在单核PC上测试

编辑

好的,我试着更具体。我的意思是糟糕的源代码行,我会忘记或未能确定,他们不会是(并发)问题。因此,也许1核心的htt“谎言”是通过防止死锁,崩溃,CPU尖峰或我的代码在双核机器上导致的任何事情。我不太确定,htt PC的2个(逻辑)处理器与双核PC的2个处理器究竟有多少不同,它是多么透明的htt。如果有任何问题,我可能会为此购买第二台PC,这就是为什么我问。

+0

“安全”是否意味着,当您重复运行程序时,它从未发生崩溃,或者这意味着您已确认(通过仔细编码)代码中不会存在并发问题?在前一种情况下,你可能会很幸运;在后一种情况下,CPU内核数量不应(理论上)有所不同。 – stakx 2010-12-04 10:36:18

+0

我尽量避免并发问题。但是我想知道,既然我现在的PC是单核的,那么双核会让我的程序暴露更多的问题吗?如果我的程序写得不好,单核htt PC会不会经常崩溃? – Karl 2010-12-04 11:04:16

回答

1

您将不得不更精确地回答您的问题;只是抛出“线程安全等”。在问题的最后没有说服我,你知道使用线程的含义。甚至写入了多线程应用程序的语言,您使用的是哪种操作系统版本,您正在考虑使用哪种芯片组?

无论如何,答案是 - 对操作系统的超线程“谎言”,并说服机器中有更多的物理内核比真实存在。从操作系统的角度来看,单核心超线程配置和双核心非超线程配置没有区别。扩展后的双核心超线程配置仅将可用物理内核的数量增加了一倍。

我认为您需要阅读关于您使用的芯片组的说明文件,以深入了解超线程是如何实现的以及它如何实现内存共享和同步。