使用netty,建立線程池的另一種選擇

之因此稱之爲 Fast,由於沒有使用 JDK 的使用線性探測法的 Map,若是你使用的是Netty 線程池工廠建立的線程,搭配 Netty 的 ftl,性能很是好,若是你使用自定義的線程,搭配 ftl,性能也會比 JDK 的好,注意: ftl 沒有 JDK 的內存泄露的風險。數組

但作到這些不是沒有代價的,因爲每個 ftl 都是一個惟一的下標,而這個下標是每次建立一個 ftl 對象都是遞增 2,當你的下標很大,你的線程中的 Map 相應的也要增大,能夠想象,若是建立了海量的 ftl 對象,這個數組的浪費是很是客觀的。很明顯,這是一種空間換時間的作法。安全

一般,ftl 都是靜態對象,因此不會有咱們假設的那麼多。若是使用不當,確實會浪費大量內存。性能

但這個風險帶來的好處是明顯的,在樓主的機器上測試,ftl 的讀取性能是 JDK 的 5 倍左右,寫入的速度也要快 20% 左右。測試

FastThreadLocal 人如其名,快且安全!線程

相關文章
相關標籤/搜索