從Java官方文檔中的描述:ThreadLocal類用來(lái)提供線程內(nèi)部的局部變量袜腥。這種變量在多線程環(huán)境下訪問(wèn)(通過(guò)get和set方法訪問(wèn))時(shí)能保證各個(gè)線程的變量相對(duì)獨(dú)立于其他線程內(nèi)的變量豺瘤。ThreadLocal實(shí)例通常來(lái)說(shuō)都是private static類型的嗜历,用于關(guān)聯(lián)線程和線程上下文庶柿。
我們可以得知ThreadLocal的作用是:提供線程內(nèi)的局部變量述召,不同的線程之間不會(huì)相互干擾笔诵,這種變量在線程的生命周期內(nèi)起作用腥沽,減少同一個(gè)線程內(nèi)多個(gè)函數(shù)或組件之間一些公共變量傳遞的復(fù)雜度谅将。
- 線程并發(fā):在多線程并發(fā)的場(chǎng)景下
- 傳遞數(shù)據(jù):我們可以通過(guò)ThreadLocal在同一線程漾狼,不同組件之間傳遞公共變量(有點(diǎn)類似于Session?)
- 線程隔離:每個(gè)線程的變量都是獨(dú)立的饥臂,不會(huì)互相影響