支持JDK19虚拟线程的web框架之:兴风作浪的ThreadLocal
支持JDK19虛擬線(xiàn)程的web框架之
:興風(fēng)作浪的ThreadLocal
關(guān)于ThreadLocal
- 既然提到了線(xiàn)程,自然繞不開(kāi)ThreadLocal類(lèi),它提供了線(xiàn)程本地變量 ,此變量和一般的變量不同。通過(guò)get & set 方法,每個(gè)線(xiàn)程可以獲取到自己獨(dú)立的變量。這個(gè)變量實(shí)例通常是私有且靜態(tài)的,可以存儲(chǔ)與線(xiàn)程相關(guān)的信息,如產(chǎn)品id、事務(wù)id等。
- 下圖很形象的展現(xiàn)了ThreadLocal :是完全屬于每個(gè)線(xiàn)程自己的集合

虛擬線(xiàn)程中,ThreadLocal的問(wèn)題
- 既然每個(gè)線(xiàn)程都可以擁有屬于自己的ThreadLocal對(duì)象,那虛擬線(xiàn)程的情況又如何呢?
- 虛擬線(xiàn)程的特性,使得我們可以在應(yīng)用代碼中創(chuàng)建成千上萬(wàn)個(gè)虛擬線(xiàn)程去執(zhí)行并發(fā)任務(wù),而無(wú)需擔(dān)心線(xiàn)程數(shù)量對(duì)整體計(jì)算資源的負(fù)擔(dān)