我碰到一個建議來抓線程不訪問相同的緩存行,我真的不能明白爲什麼,還同時做對題目我這個問題就圍繞一個搜索: Multiple threads and CPU cache 的其中一個回答提示:線程訪問同一緩存行的
你只是想避免試圖同時訪問位於同一緩存行
我看到它,內存高速緩存存儲的網頁快速的方式進行數據兩個線程從過程中訪問,並且如此這裏說的:http://en.wikipedia.org/wiki/Thread_%28computing%29#How_threads_differ_from_processes
線程共享它們的地址空間
它不應該是一個問題的兩個線程,因爲如果一個網頁是在緩存和線程試圖訪問訪問同一緩存行的無論其他線程如何,內存都會獲得緩存命中。
我聽說過有關避免線程在幾個不同場合訪問相同緩存行的爭論,所以它不能成爲一個神話。我在這裏錯過了什麼?
感謝您的回答是可用的,當我使用它們駐留在同一個C上的用戶空間線程PU還是兩個非用戶線程駐留在同一個CPU上時,沒有考慮到這個問題? – 2014-10-31 13:43:23
操作系統會自動將您的線程分配給不同的內核(除非您強制其使用相同的內核)。這就是在多核架構中使用線程的關鍵。 OTOH,如果性能不是問題,爲什麼還要首先使用線程呢? :) – 2014-10-31 13:46:24