【費曼系列-7】使用費曼學(xué)習(xí)法來掌握J(rèn)ava常用框架

費曼學(xué)習(xí)法的精髓在于用自己的語言把學(xué)習(xí)的知識給他人講懂

下面有一些問題,并附有答案和對該知識點的詳解,如果你能用自己的語言把該問題講解清楚,那恭喜你,該知識點你掌握了!


1. 你了解Netty的FastThreadLocal嗎?它為什么比JDK的ThreadLocal更快?

FastThreadLocal是Netty中的類,它比JDK中的ThreadLocal速度更快。我們知道,JDK中的ThreadLocal在每一個線程中通過一個ThreadLocalMap來維護(hù)ThreadLocal
到Object的映射關(guān)系,這個Map采用了哈希法散列、線性探索法解決沖突,因此在最壞情況下其時間復(fù)雜度可能為O(n)。

FastThreadLocal通過以空間換時間的方式改良了上述問題,每一個FastThreadLocal都有一個全局唯一的index,在FastThreadLocalThread中也是維護(hù)了一個數(shù)組,F(xiàn)astThreadLocal就存儲在該數(shù)組的index下標(biāo)處,因此總是能夠在O(1)的時間內(nèi)訪問相應(yīng)的FastThreadLocal。不過,這種方法的缺陷是可能會極大的浪費空間,例如某個FastThreadLocal的index很大,某個FastThreadLocalThread只使用了該FastThreadLocal一個共享變量,但也不得不開辟index大小的數(shù)組。

詳細(xì)原理戳這里:Netty中FastThreadLocal的實現(xiàn)原理

【長期更新中......】

?著作權(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ù)。

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