我的問題的範圍嚴格限於在內存中同時讀取和寫入地址,以及硬件中發生的情況。從不同線程讀取和寫入相同變量時的硬件狀態
我對通過在比賽發生時使用值繼續執行程序後知道有關競賽狀況和可能攜帶的內容不感興趣。如果一個電腦的邏輯被破壞了,是的,它們也可能會導致崩潰,但是在這裏我的問題嚴格來說是關於硬件以及來自併發線程的WRITE + READ的影響。
問題:假設我從一個線程寫入變量,並從另一個線程讀取同一個變量。會發生什麼?
- 只是腐敗的變量的值,使所有以下螺紋將讀取 一個錯誤的值,由於該讀的交織/寫?
或
-
在某些情況下
- ,也可導致應用程序走下來,因爲這可能是在某些情況下,某種違反硬件。
本質上我想知道更多關於物理讀寫的過程,同時變量和PC的行爲。
我使用LINUX和C++和我對2案件
2個線程在相同的物理核心
2個線程上2個獨立的芯
什麼平臺?什麼大小變量?您是在談論在單獨的物理核心上運行的線程還是在同一個核心上運行的線程? – 2013-03-20 00:27:52
我正在使用LINUX和C++,並在具體的我感興趣的2例。 A.Thread在同一個核心。 B.分開核心線程。數據是C++ bools,整數和double。 – 2013-03-20 00:30:40
嗯,運行在同一物理內核上的兩個線程**不能同時訪問內存,因爲它們不能同時運行;) – 2013-03-20 00:31:43