6.4. 多執行緒最佳化

關於多執行緒,有三個快取使用的面向是很重要的:

  • 並行(Concurrency)
  • 原子性(Atomicity)
  • 頻寬

這些面向也適用於多行程的情況,但因為多行程(大多數)是獨立的,因此為它們最佳化並沒有那麼容易。可能的多行程最佳化是那些可用於多執行緒情況的子集。所以這裡我們會專門討論後者。

在這種前後文下,並行指的是在一次執行多於一條執行緒時,一個行程所歷經的記憶體影響。執行緒的一個特性是它們全都共享相同的位址空間,因此全都能夠存取相同的記憶體。在理想的情況下,執行緒所使用的記憶體區域在多數時候都是不同的。在這種情況下,那些執行緒僅稍許耦合(couple)(舉例來說,共有的輸入與/或輸出)。若是多於一條執行緒使用了相同的資料,就需要協調了:這即是原子性發揮作用的時候。最後,視機器架構而定,可用的記憶體與可用於處理器的處理器之間的匯流排頻寬是有限的。我們將會在接下來的章節分別論及這三個面向––雖然它們是緊密相連的。

results matching ""

    No results matching ""