我在執行一些關鍵速度多線程代碼。如果我確實知道某些基本的寫入操作是原子性的,我可以避免出現一些關鍵部分。我剛剛閱讀了一篇學術論文,其中我看到以下內容:運行時間檢測 - 原子操作
「基本類型大小爲t,int,float和pointer的寫入必須是原子的。一個線程的寫入必須由其他線程以相同的順序看到。用於大多數現代標準計算機的IA-32和Intel-64 CPU架構保證了這些假設。「
我想這樣做是爲了能夠在運行時的處理器是否是一種類型,這些操作都是原子的檢測。 - 我想這也適用於AMD處理器。
我在執行一些關鍵速度多線程代碼。如果我確實知道某些基本的寫入操作是原子性的,我可以避免出現一些關鍵部分。我剛剛閱讀了一篇學術論文,其中我看到以下內容:運行時間檢測 - 原子操作
「基本類型大小爲t,int,float和pointer的寫入必須是原子的。一個線程的寫入必須由其他線程以相同的順序看到。用於大多數現代標準計算機的IA-32和Intel-64 CPU架構保證了這些假設。「
我想這樣做是爲了能夠在運行時的處理器是否是一種類型,這些操作都是原子的檢測。 - 我想這也適用於AMD處理器。
這聽起來是多餘的。 .EXE可能只是int main() { return true; }
。無論它運行,而答案是正確的,或者操作系統無法運行.EXE在所有的因爲...處理器類型不匹配.EXE類型。
我知道這是題外話,但如果你打算寫鎖免費代碼,您應該definatly由Herb薩特從文章閱讀第一Lock-Free Code: A False Sense of Security
報價:
無鎖碼具有兩大缺陷 的缺點。首先,它不是廣義的 用於解決典型的 問題 - 很多基本數據結構,甚至雙向鏈表, 仍然沒有已知的無鎖 實現。提出一個新的 或改進的無鎖數據結構 仍然會賺你在一個審過的雜誌, 有時學位至少 發表的論文。
AMD處理器支持IA32 CPU架構,並且它們限定從中Intel64位來源的AMD64構建築系統。 – MSalters 2009-10-23 10:20:25
有趣。想知道什麼是論文,以及在編譯器優化時如何保證。如果你正在談論組裝好,我相信。否則,我發現很難吞下。 – 2009-10-23 18:54:54
這裏的紙: www.cs.ualberta.ca/~mmueller/ps/enzenberger-mueller-acg12.pdf 我不知道你所說的「你想怎麼在編譯器的優化存在出示擔保」的意思。誰說我想要? – Mick 2009-10-27 10:13:27