2010-12-04 37 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

您將不得不更精確地回答您的問題;只是拋出「線程安全等」。在問題的最後沒有說服我,你知道使用線程的含義。甚至寫入了多線程應用程序的語言,您使用的是哪種操作系統版本,您正在考慮使用哪種芯片組?

無論如何,答案是 - 對操作系統的超線程「謊言」,並說服機器中有更多的物理內核比真實存在。從操作系統的角度來看,單核心超線程配置和雙核心非超線程配置沒有區別。擴展後的雙核心超線程配置僅將可用物理內核的數量增加了一倍。

我認爲您需要閱讀關於您使用的芯片組的說明文件,以深入瞭解超線程是如何實現的以及它如何實現內存共享和同步。