ThreadLocal的一些理解

最近看Handler及Activity相關(guān)的文章,多次碰到ThreadLocal這個類,該類實現(xiàn)了進程內(nèi)線程間的通信,一直不理解,這個東西怎么能夠?qū)崿F(xiàn)線程間的通信的?所以就找資料研究了一下,發(fā)現(xiàn)它的設(shè)計還是挺簡單的,但是完全理解它的用法,卻需要仁者見仁智者見智了。

下面說下本人的一些小理解,該類提供了線程安全的同步處理。這個線程安全是如何保證的呢?該類中維護著一個靜態(tài)內(nèi)部類ThreadLocalMap,每個線程的調(diào)用都會被存到map中,并以調(diào)用的thread為key,所生成對象為value。因為該map是一個靜態(tài)內(nèi)部類,所以我們即使創(chuàng)建多個該對象,也只維護了一個ThreadLocalMap,因此所有調(diào)用的線程共享這一個map,我們可以通過該map來訪問到其他thread所持有的數(shù)據(jù)。

我們在使用Handler的時候,都會接觸到Looper,在Looper中就使用到了該類。每個Looper只能綁定一個線程,因此在使用Handler的線程中,我們可以同步的處理一些事情,而無需處理線程安全問題。

參考鏈接:https://blog.csdn.net/lufeng20/article/details/24314381

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容