(1)并發(fā)編程基礎與線程機制:了解多核時代并發(fā)編程的興起背景及其對發(fā)揮CPU性能的核心價值。掌握并發(fā)與并行、進程與線程的本質區(qū)別,理解線程調度的基本原理。學習線程的創(chuàng)建方式(繼承Thread、實現(xiàn)Runnable、實現(xiàn)Callable)、線程狀態(tài)的完整生命周期(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)及其轉換機制。掌握Thread核心API(sleep、yield、join、interrupt)的正確使用場景。
(2)Java內(nèi)存模型(JMM)與三大特性:深入理解JMM的核心設計:主內(nèi)存與工作內(nèi)存的交互機制、內(nèi)存間的操作協(xié)議。掌握并發(fā)編程的三大特性:原子性(Atomicity)、可見性(Visibility)、有序性(Ordering)的含義與實現(xiàn)原理。理解Happens-Before規(guī)則體系及其在保障線程安全中的作用。通過案例剖析指令重排序對并發(fā)代碼的影響。
(3)線程安全與鎖機制:掌握線程安全問題的本質成因與解決方案。深入學習synchronized關鍵字的底層原理:對象頭Mark Word結構、鎖的升級過程(偏向鎖→輕量級鎖→重量級鎖)、鎖消除與鎖粗化優(yōu)化。掌握顯式鎖(Lock)體系:ReentrantLock可重入鎖、ReadWriteLock讀寫鎖的特性與適用場景。對比synchronized與Lock的區(qū)別,學習公平鎖與非公平鎖、可中斷鎖、超時鎖等高級特性。
(4)CAS原理與原子操作類:深入理解Compare-And-Swap(CAS)的硬件級實現(xiàn)原理及其在無鎖并發(fā)中的核心地位。學習CAS的三大問題:ABA問題及AtomicStampedReference解決、循環(huán)時間長開銷大、只能保證單個共享變量的原子性。掌握JUC原子類體系:AtomicInteger、AtomicLong、AtomicReference、AtomicIntegerArray、LongAdder的性能對比與選型。
(5)AQS抽象隊列同步器:理解AQS作為JUC框架基石的核心設計思想:模板模式、CLH隊列鎖變體、同步狀態(tài)管理。深入剖析AQS的內(nèi)部結構(同步隊列、條件隊列)與資源共享方式(獨占模式EXCLUSIVE、共享模式SHARED)。通過ReentrantLock源碼分析AQS的搶鎖、釋放鎖完整流程。
(6)線程間通信與協(xié)作:掌握wait/notify/notifyAll機制的正確使用模式及其與synchronized的配合。學習Condition接口提供的更精細化的線程等待與喚醒機制。掌握經(jīng)典并發(fā)協(xié)作場景:生產(chǎn)者-消費者模式、阻塞隊列應用、并發(fā)協(xié)作工具類(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)的原理與實戰(zhàn)。
(7)JUC并發(fā)容器與數(shù)據(jù)結構:深入學習高并發(fā)場景下的容器選型與使用。掌握ConcurrentHashMap的分段鎖/CAS+同步機制、put/擴容源碼分析。學習CopyOnWriteArrayList的寫時復制原理及其讀多寫少場景的應用。掌握阻塞隊列BlockingQueue體系(ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue、DelayQueue)的實現(xiàn)原理與應用。
(8)線程池原理與調優(yōu)實踐:理解線程池的核心價值:降低資源消耗、提高響應速度、提高線程可管理性。深入剖析ThreadPoolExecutor的七大核心參數(shù)(corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler)及其協(xié)同工作機制。掌握線程池的四種拒絕策略(AbortPolicy、CallerRunsPolicy、DiscardPolicy、DiscardOldestPolicy)及其適用場景。學習Executors框架創(chuàng)建的四種預定義線程池(FixedThreadPool、CachedThreadPool、SingleThreadExecutor、ScheduledThreadPool)的隱患與選型。實踐掌握IO密集型、CPU密集型、混合型任務場景下的線程池參數(shù)估算方法。
(9)Fork/Join框架與分治編程:理解分治思想在并發(fā)編程中的應用。掌握Fork/Join框架的核心設計:工作竊取算法(Work-Stealing)、任務分解與結果合并。學習ForkJoinPool、ForkJoinTask、RecursiveTask/RecursiveAction的使用方法。實踐完成大規(guī)模數(shù)據(jù)并行計算的Fork/Join實現(xiàn)。
(10)異步編程與CompleteableFuture:掌握Future模式的原理與應用場景。深入學習CompleteableFuture對異步編程的增強:異步任務的鏈式調用、組合、回調機制。掌握supplyAsync/thenApply/thenAccept/thenCompose/applyToEither/allOf/anyOf等核心API的應用。實踐實現(xiàn)多個異步任務的有序編排與結果聚合。
(11)NIO與高性能網(wǎng)絡編程:理解BIO的阻塞式模型在高并發(fā)下的局限。掌握NIO三大核心組件:Buffer緩沖區(qū)、Channel通道、Selector多路復用器的設計與協(xié)作。學習Reactor線程模型在NIO中的應用。掌握Netty高性能網(wǎng)絡框架的核心優(yōu)勢:零拷貝機制、內(nèi)存池化、高效的線程模型、無鎖設計、責任鏈模式。實踐實現(xiàn)基于Netty的推送系統(tǒng)或RPC通信框架。
(12)性能調優(yōu)與問題診斷:掌握JVM內(nèi)置命令行工具(jps、jstack、jmap、jstat、jinfo)的使用,分析線程狀態(tài)與內(nèi)存占用。學習JVisualVm、Arthas等可視化/在線診斷工具的線程分析、內(nèi)存分析、CPU采樣功能。掌握死鎖的編碼、定位與排查方法。學習高并發(fā)場景下的常見問題:內(nèi)存溢出(OOM)分析、GC導致的系統(tǒng)卡頓排查、CPU 100%問題定位與解決。實踐完成線上高并發(fā)系統(tǒng)的性能診斷與調優(yōu)案例。