2016-06-21 109 views

回答

0

只要沒有其他線程正在寫入該變量,多線程讀取相同變量或同時調用同一方法時通常不會有性能損失。

如果一個線程可以編寫另一個線程正在讀取的變量,那麼您有一個需要謹慎處理的併發控制問題。

但是,請注意,當一個線程寫入的變量在內存中與其他線程讀取的變量相鄰時,在特定種類的硬件上可能會有例外情況。在這種情況下,它們可能處於同一個「緩存行」 - 從RAM中讀取並緩存的內存單元,在這種情況下,讀寫器之間可能存在爭用,因爲硬件無法說明它們沒有訪問相同的位置。

這是一個「假分享」。

0

簡單地說,「跨會話使用靜態變量」本質上並不會影響性能。但是,您需要關注一下表親關係,而不是。

您正在從多個用戶會話讀取/寫入的字段將同時訪問。這意味着你將需要使你的對象線程安全(如果你正在寫這些靜態字段,這將是必要的)。 這個是什麼可以有直接的性能影響。