**:
在很多情況下,訪問乙個程式變數(物件例項字段,類靜態欄位和陣列元素)可能會使用不同的順序執行,而不是程式語義所指定的順序執行。編譯器能夠自由的以優化的名義去改變指令順序。在特定的環境下,處理器可能會次序顛倒的執行指令。資料可能在暫存器,處理器緩衝區和主記憶體中以不同的次序移動,而不是按照程式指定的順序。
例如,如果乙個執行緒寫入值到字段a,然後寫入值到字段b,而且b的值不依賴於a的值,那麼,處理器就能夠自由的調整它們的執行順序,而且緩衝區能夠在a之前重新整理b的值到主記憶體。有許多潛在的重排序的**,例如編譯器,jit以及緩衝區。
編譯器,執行時和硬體被期望一起協力建立好像是順序執行的語義的假象,這意味著在單執行緒的程式中,程式應該是不能夠觀察到重排序的影響的。但是,重排序在沒有正確同步了的多執行緒程式中開始起作用,在這些多執行緒程式中,乙個執行緒能夠觀察到其他執行緒的影響,也可能檢測到其他執行緒將會以一種不同於程式語義所規定的執行順序來訪問變數。
大部分情況下,乙個執行緒不會關注其他執行緒正在做什麼,但是當它需要關注的時候,這時候就需要同步了。
Ubuntu PC意味著什麼?
5月1 日,世界 pc領導廠商 dell 經由 direct2dell 正式宣布 1 dell 與canonical 公司建立夥伴關係 2 dell 即將 ubuntu pc 此事,意味著什麼?自今年五月底起,ubuntu pc 在美國境內銷售 5 月2日,cnet 科技資訊網刊載文章,題為 二次擁...
生活意味著什麼?
生活主要是心態,就然我們在這個世界上,就要學著感恩,體會生活的美好,相信生活,路還很長,邊走邊看沿途的風景。史鐵生說,生活裡有些許問題本來就不是問題,存在即存在,沒有緣由。所以我們不要問我們為什麼存在這類的問題。生,很難.活,也很難.想要生活更難.如果你覺得天天都沒有意思的話,那我告訴你,你就是對自...
多核意味著什麼?
過去,提公升cpu效能的方法有 此時使用者程式無須修改,就可以獲得cpu效能提公升所帶來的好處。現在,提公升cpu效能的方法 此時雖然快取能,但超執行緒和多核cpu對現在的絕大多數應用,幾乎不會有任何影響。多核還說不定會降慢程式的執行,因為多核帶來的是更強的並行處理能力 更高的計算密度和更低的時鐘頻...