2013-10-11 68 views

回答

1

int d = _data;的確是一個讀和寫。但是寫入是在本地,在堆棧上,變量d,對於那裏的討論沒有興趣。

當多個線程訪問同一個對象並因此訪問相同的內存時,成員變量_data的讀/寫順序是有意義的。對於本地d變量,每個線程都有自己的堆棧,並且在這些示例中沒有關於訪問d的多線程問題。

該文章討論變量_data變量,而不是d變量。無論何時有人讀取/寫入_data,這都是一件有趣的事情,因爲這是關於多線程的內存重新排序是必須注意的事情。 int d = _data也寫到d是完全不相關的。

通過評論// Read 1,這意味着我們正在談論_data - 並且在該行代碼上沒有寫入_data

+0

文章中這只是一個內存讀取操作。我仍然不知道爲什麼? –

+0

因爲寫入d與本文討論的內容完全無關。 – nos

+0

由此,如果im錯誤,將內存讀取計數作爲局部變量獲取任何類型的值(數字,字符,另一個變量),則將我糾正。和內存寫入計數作爲線程共享內存位置的任何類型的值(數字,字符,其他變量)。 –