原创 Java高併發28-ThreadPoolExecutor原理剖析(2)

線程池轉換狀態如下: Running->Shutdown 顯示調用shutdown()或隱式調用finalize()中的shutdown()Running或者Shutdown->Stop 顯示調用shutdownNow()Shutd

原创 Java高併發27-ThreadPoolExecutor原理剖析(1)

類圖 27.1 線程池的好處: (1)性能好;(2)工廠方法便捷創建線程,個數自定義指定 類圖描述 Excutors其實是一個工具類,ThreadPoolExecutor繼承了AbstractExecutorService,成員變量c

原创 Android連載40-ITelecomService詳解

一、撥號流程總結 DialpadFragment提供用戶撥號的交互界面CallIntentBuilder創建撥號請求的intent對象TelecomManager繼續傳遞撥號請求intent對象 二、ITelecomService接收撥

原创 Android連載39-簡析HAL、撥號盤

一、簡析HAL結構 HAL是一個位於操作系統和驅動程序之上,運行在用戶空間中的服務程序。目的:對上層應用提供一個統一的查詢硬件設備的接口。好處:簡化了應用程序查詢硬件的邏輯注意:HAL所謂的抽象不提供對硬件的實際操作,對硬件的操作仍然由具

原创 Java高併發26-釋放鎖以及ReentrantLock實例演示

一、釋放鎖 1.void unlock()方法 嘗試釋放鎖,如果當前線程持有鎖,則調用該方法會讓該線程對該線程持有的AQS狀態值減1,如果減去1後當前狀態值爲0,則當前線程會釋放該鎖,否則僅僅減去1而已,如果當前線程沒有持有該鎖而調用了該

原创 Java高併發25-獨佔鎖ReentranLock的原理

一、類圖結構 25.1 ReentrantLock是一個可重入鎖,只有一個線程可以獲取到該鎖,其他線程想要獲取該鎖的時候會被放到AQS隊列中。從類圖中可以看到實現了Lock接口,內含一個Sync類型變量,該類型是繼承自AQS抽象類,同時又

原创 JavaScript連載38-編寫評論界面

一、編寫評論頁面 <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>D38_1_Review</title>    <style>      

原创 Java高併發22-AQS條件變量的支持

一、入隊操作 當一個線程獲取鎖失敗之後會被轉換爲Node節點,然後會使用enq方法,將該節點插入到AQS的阻塞隊列,下面看一下這個方法如何實現  private Node enq(final Node node) {  for(;;) {

原创 Java高併發21-AQS在共享,獨佔場景下的源碼介紹

一、AQS--鎖的底層支持 1.AQS是什麼 AQS是AbstractQueuedSychronizer的簡稱,即抽象同步隊列的簡稱,這是實現同步器的重要組件,是一個抽象類,雖然在實際工作中很燒用到它,但是瞭解它的內部原理是很有必要的,並

原创 Java高併發20-併發包中鎖原理解析(二)

一、例子 下面來一個例子加深對park和unpark的理解 package com.ruigege.LockSourceAnalysis6;import java.util.concurrent.locks.LockSupport;pub

原创 Java高併發19-併發包中鎖原理解析(一)

一、LockSupport工具類 1.該類的主要作用 掛起和喚醒線程,該工具類是創建鎖和其他同步類的基礎。LockSupport類與每個使用它的線程都會關聯一個許可證,默認情況下調用LockSupport類的方法的線程是不持有許可證的。L

原创 Java高併發18-併發列表CopyOnWriteArrayList源碼解析

一、CopyOnWriteArrayList 概覽:該List是一個JUC包中的唯一併發List,它是線程安全的,底層是一個數組,我們所有的操作都是使用了寫時複製的策略,下面這張圖片就是該類的一個類圖 1.類圖基本解釋 有一個獨佔鎖R

原创 Java高併發17-LongAccumulator類詳解

一、LongAccumulator類 1.和LongAdder之間的關係 LongAdder類是LongAccumulator的一個特例,我們看一下LongAccumulator的一個構造方法  public LongAccumlator

原创 Java高併發16-LongAdder類源碼解析(下)

一、複習 上次連載簡單的介紹了其他函數的作用以及功能 二、完整的LongAdder類源碼 package com.ruigege.AtomicOperationClass4;import java.util.function.LongBi

原创 Java高併發16-LongAdder類源碼解析(上)

一、複習 AtomicLong類 二、LongAdder源碼分析 1.繼承與實現關係 LongAdder類繼承自Striped64這個類,同時實現了Serializable接口 abtract class Strped64{    tr