以下文章基本上保證真實可信,如有謬誤歡迎指正;
同時很多內容來自個人有道筆記的摘抄,如果有不清不楚的地方還請見諒,可留言告知我完善相關內容;
也隨時歡迎諮詢和討論~
有助於新手初步瞭解線程相關的知識同時加深對基礎的理解。
瞭解線程的狀態、常用方法以及Thread、Runnable、Callable、Future、FutureTask這些基礎概念和簡單應用。
有助於瞭解線程池相關的知識、包括線程池執行邏輯、常用方法;
以及java爲我們提供常用的線程池和任務調度ScheduledExecutorService以及工作竊取ForkJoin;
學習java提供的線程池的同時、理解應用場景和原理;根據業務場景和併發的原則自定義適合自身業務的線程池。
包含多線程基本的概念、進程和線程、併發和並行、java.utils.concurrent包中和線程相關的類;
有時間的同學可以把java.utils.concurrent整體都看幾遍
Java多線程③——Guava併發;Java多線程④---CompletableFuture簡述
深入使用異步和多線程繞不開的Guave和Jdk8的CompletableFuture;
包含簡單的Guave的ListenableFuture和Jdk8的CompletableFuture使用方法示例。
知識在進階開發面試中可能會用到,同時瞭解這些只有有助於我們寫出高併發的代碼;
對象的內存佈局、同步關鍵字的底層原理--->鎖的概念 偏向鎖(無鎖)----> 自旋鎖(cas) ----> 重量鎖
Java引用(強、軟、弱、虛)的應用場景、ThreadLocal使用注意事項
lock、condition、ReadWriteLock 接口;鎖相關方法、簡單應用和底層實現原理
瞭解LockSupport.park;和互斥量相關知識;
待完成:java多線程常用隊列和小工具
線程工具:CountDownLatch、CyclicBarrier、Exchanger、Semaphore 在線程花絮有簡單介紹
隊列FIFO先進先出:
newCachedThreadPool無界線程池使用 SynchronousQueue;
ScheduledExecutorService任務調度線程池使用 DelayedWorkQueue;
PriorityBlockingQueue、SynchronousQueue、ArrayBlockingQueue、LinkedBlockingQueue
從隊列再延伸到數據結構和算法;後續也推出java數據結構和算法相關博客~
待完成:響應式編程Java8、RxJava和Reactor、akka、webflux
暫時理解不深有機會補充相關知識。
- Composable(可組合)
- Lazy(惰性執行)
- Reusable(可複用)
- Asynchronous(異步)
- Cacheable(可緩存)
- Push or Pull(推拉模型)
- Backpressure(回壓)
- Operator fusion(操作融合)
發現一個博客對ForkJion講的很清楚,轉載給大家,需要了解的可以自行閱讀,同時此博主的相關博客也很優秀。
以上是我個人對java併發脈絡的梳理,偏向應用,歡迎討論和交流,謝謝~