原创 ForkJoinPool源碼深度解析

目錄1.初始化2.核心方法2.1 invoke方法externalPushexternalSubmit線程池加鎖 lockRunState/unlockRunStatesignalWork ForkJoinPool的整體邏輯其實

原创 二進制數的一些玩法

目錄非負整數的乘法用二進制位移如何表達取小於某個數的偶數 在看JDK的源碼的過程中,難免會碰到一些二進制的操作,如果對這些操作不太熟悉就不明白作者到底想做什麼事情,從而導致不能理解代碼,那麼二進制有哪些玩法呢,本文嘗試着將這些玩

原创 Semaphore源碼解析以及與CountDownLatch的對比

寫在前面 信號量,源碼中的註釋是這樣寫的 : A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each {@link #a

原创 AbstractQueuedSynchronizer源碼深度解析和思考

目錄寫在前面總體介紹主體結構節點類的構造圖形化同步隊列和condition隊列鎖實現寫鎖(獨佔鎖)獲取鎖節點加入同步隊列同步隊列中的節點嘗試獲取鎖或者睡眠獲取鎖或者睡眠過程中線程被中斷(取消獲取鎖)取消節點需要喚醒後繼節點的情況釋