了解 Java 中的 ThreadLocal Understanding ThreadLocal in Java

https://medium.com/@cstoppgmr/understanding-threadlocal-in-java-7cd268c10f02

了解 Java 中的 ThreadLocal

我們多次討論了多個線程讀寫同一個共享變數引發的並發問題。在先前的文章中,我們專注解決問題的寫入方面 ─ 如果沒有寫入操作,自然也沒有並發問題。然而,另一種方法是消除共享變數本身。俗話說得好,“不共享,不傷害”。

那麼該如何避免共享呢?這個想法相當簡單:每個線程都有自己的變數,由於各線程之間沒有共享,所以也就沒有並發問題。

您可能已經知道本地變量可以透過避免共享來實現這一點,但是否還有其他方法可以實現呢?是的,Java 提供了一個稱為 ThreadLocal 的功能來管理線程本地存儲,讓每個線程都擁有自己獨立的變數。現在就讓我們看看如何使用 ThreadLocal。

如何使用 ThreadLocal

下面的靜態類 ThreadId 為每個線程分配一個獨特的線程 ID。如果同一個線程兩次調用 ThreadId 的 get() 方法,那麼這兩次 get() 方法調用的結果將是相同的。但是,如果兩個不同的線程調用 ThreadId 的 get() 方法,則每個線程的結果將不同。

via Programming on Medium

July 4, 2024 at 01:19PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *