【发布时间】:2010-12-04 10:27:27
【问题描述】:
如果多线程程序在具有超线程的单核 CPU 上安全运行,它是否也可以在具有超线程的双核 CPU 上安全运行?关于线程安全等。
编辑
好的,我试着更具体一些。我的意思是糟糕的源代码行,我会忘记或无法确保它们不会是(并发)问题。
因此,也许 1 核 htt 通过防止死锁、崩溃、cpu 峰值或我的代码在 2 核机器上引起的任何事情来“撒谎”。我不确定,htt PC 的 2 个(逻辑)处理器与双核 PC 的 2 个处理器有何不同,htt 的透明度如何。如果有任何问题,我可能会为此购买第二台 PC,这就是我问的原因。
【问题讨论】:
-
“安全”是否意味着当您反复运行程序时,它从未发生过崩溃,或者是否意味着您已确保(通过仔细编码)不会出现并发你的代码有问题吗?在前一种情况下,您可能很幸运;在后一种情况下,CPU 内核的数量(理论上)不应该产生影响。
-
我尽量避免并发问题。但我想知道,由于我目前的 PC 是单核的,双核是否会使我的程序面临更多问题?万一我的程序写得不够好,单核htt PC会不会少崩溃?
-
...可能是死锁场景或任何情况。我想,购买双核机器可能是最好的。只是试图说服理论上单核 htt 机器足以进行测试。
标签: multithreading hyperthreading