国产第1页_91在线亚洲_中文字幕成人_99久久久久久_五月宗合网_久久久久国产一区二区三区四区

讀書月攻略拿走直接抄!
歡迎光臨中圖網 請 | 注冊
> >>
深入理解Java高并發編程

包郵 深入理解Java高并發編程

作者:黃俊
出版社:清華大學出版社出版時間:2021-11-01
開本: 16開 頁數: 636
中 圖 價:¥72.5(4.9折) 定價  ¥148.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
溫馨提示:5折以下圖書主要為出版社尾貨,大部分為全新(有塑封/無塑封),個別圖書品相8-9成新、切口
有劃線標記、光盤等附件不全詳細品相說明>>
本類五星書更多>

深入理解Java高并發編程 版權信息

深入理解Java高并發編程 本書特色

Java多線程并發編程是Java領域較難理解和較難掌握的知識,同時也是IT業務領域較為重要的知識之一;在編程開發中應用廣泛,同時也是Java編程中難度較高、對源碼分析要求較高的部分。 《深入理解Java高并發編程》內容分為上下兩篇,共10章。上篇講解基礎知識,涉及從計算機硬件到軟件的一系列內容;下篇深入研究Java虛擬機,討論并發編程知識。本書并沒有介紹Java語言層面的一些基礎知識,所以閱讀本書需要讀者理解掌握Java SE的內容。對此,讀者可以選擇《Java從入門到精通》進行學習。 筆者專注于研究Java語言,對Linux內核、JVM有著精深的研究,曾在多家大型互聯網公司任職,具有豐富的實戰經驗。并且多年擔任Java教學工作,講解知識清晰明了、深入淺出。 筆者在“文泉云盤”中為廣大讀者朋友準備了微課視頻,供大家參考學習。另外,讀者可掃描前言中的“技術支持”二維碼,觀看作者分享的講解視頻,和作者進行溝通,共同學習,一起成長。 修煉高并發內功,面試求職常備。計算機、系統、軟件多層次講透CPU并發、內核并發、Java并發、線程池、JVM原理。《Java從入門到精通》進階篇,馬士兵教育傾心打造。

深入理解Java高并發編程 內容簡介

《深入理解Java高并發編程》致力于介紹Java高并發編程方面的知識。由于多線程處理涉及的知識內容十分豐富,因此介紹時必須從Java層面的講解一直深入到底層的知識講解。為了幫助讀者輕松閱讀本書并掌握其中知識,本書做了大量基礎知識的鋪墊。在第1篇基礎知識儲備中,主要介紹計算機原理、并發基礎、常見語言的線程實現、Java并發入門、JUC之Java線程池、JUC之同步結構、Java NIO詳解等內容。在第2篇深入Java并發原理中,詳細介紹了JUC包中所有使用的原子類的原理與源碼實現;非常關鍵且容易出錯的volatile關鍵字的原理,從Java、JVM、C、匯編、CPU層面對其進行詳細講解;synchronized在JVM中獲取鎖和釋放鎖的流程;JUC包的核心結構——AQS的原理與源碼實現,通過逐方法、逐行的解釋,幫助讀者徹底掌握AQS中提供的獲取鎖、釋放鎖、條件變量等操作的實現與原理。*后,詳細介紹了JVM中JNI的實現原理,將Java Thread對象中的所有方法在JVM層面的實現流程進行了詳細描述,以幫助讀者在使用這些方法時,知道底層發生了什么,以及發生異常時如何從容解決問題。

深入理解Java高并發編程 目錄

第1篇 基礎知識儲備

第1章 計算機原理 2

1.1 匯編語言基礎 2

1.1.1 匯編語言與機器語言 2

1.1.2 常見的寄存器 3

1.1.3 常見操作語句 6

1.1.4 內聯匯編 6

1.1.5 常見助記符 9

1.2 C語言基礎 12

1.2.1 基本數據類型 12

1.2.2 結構體原理 13

1.2.3 指針原理 19

1.2.4 指針與數組原理 21

1.3 計算機組成原理基礎 23

1.3.1 intel的發展歷史 23

1.3.2 計算機程序的組成 29

1.3.3 計算機的內存管理與內存地址原理 36

1.3.4 計算機程序的執行原理 44

1.4 OS概述 52

1.4.1 OS的發展歷程和分類 53

1.4.2 常用的OS系統 56

1.5 小結 57

第2章 并發基礎 58

2.1 并發與并行原理 58

2.1.1 并發 58

2.1.2 并行 59

2.1.3 并發與并行帶來的問題 59

2.2 傳統OS并發控制原理 60

2.2.1 P-V原語 60

2.2.2 信號量 61

2.2.3 互斥量 62

2.2.4 自旋鎖 62

2.2.5 讀寫鎖 63

2.2.6 死鎖 64

2.3 CPU并發控制原理 66

2.3.1 中斷控制 66

2.3.2 緩存一致性協議 67

2.3.3 系統屏障 69

2.3.4 總線/緩存鎖 73

2.4 Linux內核并發控制原理 73

2.4.1 Linux內核信號量與P-V原語實現原理 74

2.4.2 Linux內核互斥量實現原理 80

2.4.3 Linux內核自旋鎖實現原理 80

2.4.4 Linux內核讀寫鎖實現原理 84

2.4.5 Linux內核中斷控制與內核搶占原理 91

2.4.6 Linux內核seq鎖實現原理 98

2.4.7 Linux內核rcu鎖實現原理 100

2.5 Glibc和Pthread庫原理 105

2.5.1 C標準、CRT與Glibc 105

2.5.2 LinuxThread與POSIX、NGTP、NPTL 107

2.5.3 NPTL常用函數與實現原理 108

2.6 小結 131

第3章 常見語言的線程實現 132

3.1 匯編語言多線程實現 132

3.2 C語言多線程實現 133

3.3 Go語言多線程實現 134

3.4 Python語言多線程實現 135

3.5 Java語言多線程實現 135

3.6 不同語言并發異同與知識推理 136

3.7 小結 136

第4章 Java并發入門 137

4.1 Java Thread類核心原理與方法 137

4.1.1 走進Thread 138

4.1.2 run方法 139

4.1.3 start方法 139

4.1.4 stop方法 140

4.1.5 destory方法 140

4.1.6 interrupt方法 141

4.1.7 sleep方法 142

4.1.8 join方法 142

4.1.9 Thread方法使用與線程狀態轉換 143

4.2 Runnable與Callable的使用 144

4.3 Future接口的使用 146

4.4 Promise接口的使用 147

4.5 volatile關鍵字的使用 147

4.6 synchronized關鍵字的使用 148

4.7 小結 149

第5章 JUC之Java線程池 150

5.1 Executor與ExecutorService詳解 150

5.1.1 Executor接口原理 150

5.1.2 ExecutorService接口原理 151

5.2 ThreadPoolExecutor詳解 156

5.2.1 ThreadPoolExecutor例子 156

5.2.2 ThreadPoolExecutor核心數據結構 156

5.2.3 execute方法的實現原理 159

5.2.4 shutdown方法實現原理 164

5.2.5 awaitTermination方法的實現原理 166

5.2.6 shutdownNow方法的實現原理 167

5.3 ScheduledThreadPoolExecutor詳解 168

5.3.1 ScheduledThreadPoolExecutor例子 169

5.3.2 ScheduledExecutorService接口 170

5.3.3 ScheduledThreadPoolExecutor核心變量 170

5.3.4 scheduleAtFixedRate實現與原理 172

5.3.5 ScheduledFutureTask實現與原理 176

5.3.6 scheduleWithFixedDelay實現與原理 177

5.3.7 shutdown實現與原理 178

5.4 構建不同線程池 179

5.4.1 FixedThreadPool 179

5.4.2 SingleThreadExecutor 179

5.4.3 CachedThreadPool 180

5.4.4 SingleThreadScheduledExecutor 180

5.4.5 ScheduledThreadPool 181

5.5 ForkJoinPool詳解 181

5.5.1 ForkJoinPool核心數據結構與方法 181

5.5.2 ForkJoinPool externalPush實現原理 185

5.5.3 ForkJoinPool externalSubmit實現原理 185

5.5.4 ForkJoinPool signalWork實現原理 187

5.5.5 ForkJoinPool tryAddWorker實現原理 188

5.5.6 ForkJoinPool createWorker實現原理 189

5.5.7 ForkJoinPool registerWorker實現原理 189

5.5.8 ForkJoinPool ForkJoinWorkerThread執行原理 190

5.5.9 ForkJoinPool scan竊取算法原理 191

5.5.10 ForkJoinPool runTask原理 194

5.5.11 ForkJoinPool awaitWork原理 196

5.5.12 ForkJoinPool切割子任務 197

5.5.13 ForkJoinTask doExec原理 198

5.5.14 ForkJoinTask fork原理 202

5.5.15 ForkJoinTask join原理 202

5.5.16 ForkJoinPool awaitJoin原理 204

5.5.17 ForkJoinPool tryRemoveAndExec原理 205

5.5.18 ForkJoinPool helpStealer原理 207

5.5.19 ForkJoinPool tryCompensate原理 209

5.5.20 ForkJoinPool shutdown原理 211

5.5.21 ForkJoinPool awaitTermination原理 214

5.5.22 ForkJoinPool總結 215

5.5.23 RecursiveAction原理 216

5.5.24 RecursiveTask原理 217

5.5.25 CountedCompleter原理 218

5.6 CompletableFuture詳解 234

5.6.1 CompletableFuture 概念與例子 234

5.6.2 CompletableFuture CompletionStage接口 235

5.6.3 CompletableFuture runAsync原理 237

5.6.4 CompletableFuture postComplete原理 238

5.6.5 CompletableFuture Completion原理 239

5.6.6 CompletableFuture allOf原理 246

5.7 小結 253

第6章 JUC之同步結構 254

6.1 同步結構基礎實現原理 254

6.1.1 Lock接口 254

6.1.2 Condition接口 255

6.1.3 LockSupport類 255

6.1.4 AQS類 256

6.1.5 隊列核心接口 259

6.2 ReentrantLock實現與原理 262

6.3 ReentrantReadWriteLock實現與原理 264

6.4 Semapher實現與原理 271

6.5 FutureTask實現與原理 273

6.6 ArrayBlockingQueue實現與原理 278

6.7 LinkedBlockingQueue實現與原理 281

6.8 LinkedBlockingDeque實現與原理 284

6.9 LinkedTransferQueue實現與原理 288

6.10 SynchronousQueue實現與原理 295

6.11 PriorityBlockingQueue實現與原理 305

6.12 ConcurrentLinkedQueue實現與原理 310

6.13 ConcurrentLinkedDeque實現與原理 315

6.14 ThreadLocalRandom實現與原理 326

6.15 CopyOnWriteArrayList實現與原理 329

6.16 CopyOnWriteArraySet實現與原理 331

6.17 CountDownLatch實現與原理 333

6.18 CyclicBarrier實現與原理 335

6.19 ConcurrentHashMap實現與原理 338

6.20 ConcurrentSkipListMap實現與原理 354

6.21 ConcurrentSkipListSet實現與原理 363

6.22 Exchanger實現與原理 364

6.23 Phaser實現與原理 372

6.24 小結 380

第7章 Java NIO詳解 382

7.1 NIO三劍客之Buffer原理 382

7.1.1 Buffer 383

7.1.2 ByteBuffer 385

7.1.3 HeapByteBuffer 394

7.1.4 MappedByteBuffer 396

7.1.5 DirectByteBuffer 398

7.2 NIO三劍客之Channel原理 403

7.2.1 Channel 403

7.2.2 FileChannel 404

7.2.3 SocketChannel 408

7.2.4 ServerSocketChannel 412

7.2.5 DatagramChannel 415

7.3 NIO三劍客之Selector原理 420

7.3.1 Selector 420

7.3.2 SelectionKey 423

7.4 小結 431

第2篇 深入Java并發原理

第8章 JVM synchronized與volatile原理詳解 434

8.1 JVM源碼分析之Unsafe類 434

8.1.1 compareAndSwap類方法實現原理 435

8.1.2 getIntVolatile方法實現原理 435

8.1.3 putIntVolatile方法實現原理 435

8.1.4 putOrderedInt方法實現原理 436

8.1.5 park方法實現原理 437

8.1.6 loadFence方法實現原理 438

8.1.7 storeFence方法實現原理 438

8.1.8 fullFence方法 438

8.2 JVM源碼分析之原子類 439

8.2.1 AtomicInteger實現與原理 439

8.2.2 AtomicBoolean實現與原理 440

8.2.3 AtomicIntegerArray實現與原理 441

8.2.4 AtomicIntegerFieldUpdater實現與原理 443

8.2.5 AtomicLong實現與原理 445

8.2.6 AtomicLongArray實現與原理 446

8.2.7 AtomicLongFieldUpdater實現與原理 447

8.2.8 AtomicMarkableReference實現與原理 450

8.2.9 AtomicStampedReference實現與原理 451

8.2.10 AtomicReference實現與原理 454

8.2.11 AtomicReferenceArray實現與原理 454

8.2.12 AtomicReferenceFieldUpdater實現與原理 455

8.2.13 DoubleAccumulator實現與原理 457

8.2.14 DoubleAdder實現與原理 465

8.2.15 LongAccumulator實現與原理 466

8.2.16 LongAdder實現與原理 467

8.3 volatile原理分析 469

8.3.1 JVM內存模型 469

8.3.2 Java中happens-before原則 469

8.3.3 Java中Volatile語義 470

8.3.4 Java中Volatile字節碼原理 472

8.3.5 JVM中putstatic和getstatic字節碼原理 473

8.3.6 C/C++中的volatile原理 475

8.3.7 JVM中volatile對于禁止重排序的實現原理 477

8.3.8 從Pthread線程庫分析C的volatile語義 480

8.3.9 JMM和CPU模型原理 484

8.4 synchronized源碼分析 488

8.4.1 Java對象頭原理 488

8.4.2 _monitorenter 獲取鎖過程原理 490

8.4.3 _monitorexit 釋放鎖過程原理 513

8.4.4 Object.wait 等待過程原理 518

8.4.5 Object.notify 喚醒過程原理 522

8.4.6 Object.notifyAll 喚醒全部過程原理 524

8.4.7 Object.hashcode 獲取哈希碼過程原理 526

8.5 小結 530

第9章 AQS源碼詳解 531

9.1 compare and swap原理詳解 531

9.1.1 compare and swap概念 531

9.1.2 Java層面compare and swap實現原理 531

9.1.3 Hotspot虛擬機層面compare and swap實現原理 532

9.1.4 匯編層面compare and swap實現原理 533

9.2 AQS核心之Node類 533

9.3 AQS核心之head和tail變量 534

9.4 AQS核心之state變量 535

9.5 AQS核心之acquire過程原理 536

9.6 AQS核心之acquireInterruptibly過程原理 540

9.7 AQS核心之acquireShared過程原理 541

9.8 AQS核心之acquireSharedInterruptibly過程原理 544

9.9 AQS核心之release過程原理 544

9.10 AQS核心之releaseShared過程原理 545

9.11 AQS核心之條件變量原理 545

9.11.1 ConditionObject類 545

9.11.2 await Node等待操作原理 546

9.11.3 signal Node喚醒操作原理 550

9.11.4 相關工具方法詳述 552

9.12 小結 553

第10章 JVM線程原理詳解 554

10.1 JNI詳述 554

10.1.1 JNI概念 554

10.1.2 JVM執行外部動態鏈接庫原理 556

10.1.3 JVM執行內部動態鏈接庫原理 578

10.1.4 JNIEnv結構體原理 583

10.2 Java Thread類源碼解析 584

10.3 Java Thread Start原理解析 585

10.4 Java Thread Stop原理解析 592

10.5 Java Thread Interrupt原理解析 594

10.6 Java Thread isInterrupted原理解析 595

10.7 Java Thread Sleep原理解析 596

10.8 Java Thread Yield原理解析 598

10.9 Java Thread Suspend原理解析 599

10.10 Java Thread Resume原理解析 601

10.11 JVM Thread層級結構 601

10.12 JVM互斥體原理 605

10.12.1 ParkEvent與Parker原理 606

10.12.2 MutexLocker原理 614

10.12.3 MutexLockerEx原理 615

10.12.4 Mutex和Monitor原理 616

10.13 小結 623


展開全部

深入理解Java高并發編程 作者簡介

黃俊,專注于研究Java語言, Hotspot, Linux內核,C語言與匯編,架構設計,多線程并發處理,專注于研究高效學習方式。曾就職于美團、阿里,前新東方業務架構師。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 国产精品无码av天天爽 | 亚洲高清视频在线观看 | 亚洲一级特黄特黄的大片 | 男女做aj视频免费的网站 | 国产偷自一区二区三区 | 中国高清色视频www 中国国产xxxx免费视频 | 四虎影视一区二区精品 | 男女一边桶一边摸一边脱视频免费 | 中国农村妇女hdxxxx | 欧美激情精品久久久久久大尺度 | 免费性视频| 亚洲成人性视频 | 91大神上海李雅在线观看 | 亚洲99久久久久综合 | 亚洲欧美久久精品一区 | 爱爱久久 | 又爆又大又粗又硬又黄的a片 | 国产99热久久这里有精品999 | 精品伊人久久香线蕉 | 中文岛国精品亚洲一区 | 亚洲国产日韩a在线播放 | 午夜裸体性播放 | 欧美日韩国产成人综合在线 | 99中文在线 | 精品免费国产一区二区女 | 久久免费精品视频在线观看 | 午夜剧场在线免费观看 | 激情综合亚洲五月色婷婷 | 日韩精品无码人妻一区二区三区 | 欧美大屁股xxxx高跟欧美黑人 | 成人一级视频 | 免费观看一级欧美在线视频 | 两个人看的视频www在线高清 | 久久精品无码一区二区www | 色综合天天综合网国产国产人 | 小明成人永久视频在线观看 | 亚洲精品一区二区三区新线路 | 国产福利视频微拍在线 | 中文字幕在线国产 | 欧美特黄a级猛片a级 | 真实国产乱子伦精品一区二区三区 |