ThreadLocal原理,實現及如何保證Local屬性


  當需要使用多線程時,有個變量恰巧不需要共享,此時就不必使用synchronized這么麻煩的關鍵字來鎖住,每個線程都相當於在堆內存中開辟一個空間,線程中帶有對共享變量的緩沖區,通過緩沖區將堆內存中的共享變量進行讀取和操作,ThreadLocal相當於線程內的內存,一個局部變量。每次可以對線程自身的數據讀取和操作,並不需要通過緩沖區與 主內存中的變量進行交互。並不會像synchronized那樣修改主內存的數據,再將主內存的數據復制到線程內的工作內存。ThreadLocal可以讓線程獨占資源,存儲於線程內部,避免線程堵塞造成CPU吞吐下降。

  在每個Thread中包含一個ThreadLocalMap,ThreadLocalMap的key是ThreadLocal的對象,value是獨享數據。

 ps:關注一下本人公眾號,每周都有新更新哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM