Multithreading 在单核PC机上进行超线程测试

Multithreading 在单核PC机上进行超线程测试,multithreading,hyperthreading,Multithreading,Hyperthreading,如果多线程程序在具有超线程的单核CPU上安全运行,那么它在具有超线程的双核CPU上也会安全运行吗?关于螺纹安全等 编辑 好的,我尽量说得更具体些。我指的是糟糕的源代码行,我会忘记或无法确保它们不会成为(并发性)问题 因此,单核htt可能通过防止死锁、崩溃、cpu峰值或我的代码在双核机器上引起的任何事情而“撒谎”。我不确定,htt PC的2个(逻辑)处理器与双核PC的2个处理器到底有多大不同,htt的透明性有多高。如果有任何问题,我可能会为此买第二台电脑,这就是我问的原因。你必须更准确地回答你的问

如果多线程程序在具有超线程的单核CPU上安全运行,那么它在具有超线程的双核CPU上也会安全运行吗?关于螺纹安全等

编辑

好的,我尽量说得更具体些。我指的是糟糕的源代码行,我会忘记或无法确保它们不会成为(并发性)问题


因此,单核htt可能通过防止死锁、崩溃、cpu峰值或我的代码在双核机器上引起的任何事情而“撒谎”。我不确定,htt PC的2个(逻辑)处理器与双核PC的2个处理器到底有多大不同,htt的透明性有多高。如果有任何问题,我可能会为此买第二台电脑,这就是我问的原因。

你必须更准确地回答你的问题;仅仅在问题的末尾加上“线程安全等”并不能让我相信你知道使用线程意味着什么。多线程应用程序是用什么语言编写的,您使用的是什么操作系统版本,您考虑的是什么芯片组

不管怎样,答案是——对操作系统进行超线程读取“谎言”,并让操作系统相信机器中的物理内核比实际的多。从操作系统的角度来看,单核超线程配置和双核非超线程配置之间没有区别。扩展而言,双核超线程配置只会使可用的物理内核数量增加一倍


我认为您需要阅读有关您使用的芯片组的规范文件,以便更深入地了解Hyperreading是如何实现的,以及它是如何实现内存共享和同步的。

是否“安全”意味着,当您反复运行程序时,它从未发生崩溃,还是意味着您已经确保(通过仔细编码)您的代码不会出现并发性问题?在前一种情况下,您可能只是幸运;在后一种情况下,CPU内核的数量(理论上)不应该如此有所不同。我试图避免并发问题。但我想知道,既然我现在的电脑是单核的,双核会让我的程序暴露更多问题吗?如果我的程序写得不好,单核htt电脑崩溃的频率会降低吗?…可能是死锁或其他情况。我想,买一台双核机器可能是最好的。Just试图确信理论上单核htt机器可以进行测试。啊,找到了相关文档:。第2-22页是超线程的第一个参考。我忘了,OS:Windows 7,语言:C和AssemblyInterest。对于这样一个现代操作系统,我想说你不用担心,你使用的语言暴露了真正的操作系统线程没有任何干涉(与Python相反,Python公开线程,但使用全局锁来同步所有线程)。