借用 Java 併發程式設計實踐中的話:編寫正確的程式並不容易,而編寫正常的併發程式就更難了。相比於順序執行的情況,多執行緒的執行緒安全問題是微妙而且出乎意料的,因為在沒有進行適當同步的情況下多執行緒中各個操作的順序是不可預期的。

併發程式設計相比 Java 中其他知識點學習起來門檻相對較高,學習起來比較費勁,從而導致很多人望而卻步;而無論是職場面試和高併發高流量的系統的實現卻都還離不開併發程式設計,從而導致能夠真正掌握併發程式設計的人才成為市場比較迫切需求的。

本 Chat 作為 Java 併發程式設計之美系列的高階篇之一,主要講解內容如下:(建議先閱讀Java 併發程式設計之美:基礎篇 )

ThreadLocal 的實現原理,ThreadLocal 作為變數的執行緒隔離方式,其內部是如何做的?
InheritableThreadLocal 的實現原理,InheritableThreadLocal 是如何彌補 ThreadLocal 不支援繼承的特性?
JDK 併發包中 ThreadLocalRandom 類原理剖析,經常使用的隨機數生成器 Random 類的原理是什麼?其內部是如何使用 CAS 演算法保證多執行緒下新種子的唯一性?及其侷限性是什麼?ThreadLocalRandom 是如何利用 ThreadLocal 的原理來解決 Random 的侷限性?
最後 ThreadLocal 的一個使用場景,Spring 框架中如何使用 ThreadLocal 實現 request scope 作用域 Bean
---------------------