国产TS紫迹丝袜高跟鞋在线,一区二区三区国产自产视频免费,67pao国产人成视频,午国产午夜激无码毛片不卡

愛碼網專注于資源免費下載

Java多線程編程實戰(zhàn)指南 核心篇 PDF 下載

Java多線程編程實戰(zhàn)指南  核心篇 PDF 下載-第1張圖片 此部分為隱藏內容,請輸入驗證碼后查看
驗證碼:


掃描右側圖片或微信搜索 “ Java技術分享屋 ” ,回復 “ 驗證碼 ” ,獲取驗證密碼。
本資料僅供讀者預覽及學習交流使用,不能用于商業(yè)用途,請在下載后24小時內刪除。如果喜歡,請購買正版!

一.資料截圖

Java多線程編程實戰(zhàn)指南  核心篇 PDF 下載-第2張圖片

二.資料介紹

隨著現(xiàn)代處理器的生產工藝從提升處理器主頻頻率轉向多核化,即在一塊芯片上集成多個處理器內核(Core),多核處理器(Multicore Processor)離我們越來越近了——如今就連智能手機這樣的消費類設備都已配備了4核乃至8核的處理器,更何況商用系統(tǒng)!在此背景下,以往靠單個處理器自身處理能力的提升所帶來的軟件計算性能提升的那種“免費午餐”已不復存在,這使得多線程編程在充分利用計算資源、提高軟件服務質量方面扮演了越來越重要的角色。故而,掌握多線程編程技能對廣大開發(fā)人員的重要性亦由此可見一斑。本書以基本概念、原理與方法為主線,輔以豐富的實戰(zhàn)案例和生活化實例,并從Java虛擬機、操作系統(tǒng)和硬件多個層次與角度出發(fā),循序漸進、系統(tǒng)地介紹Java平臺下的多線程編程核心技術及相關工具。

三.資料目錄

一部分  多線程編程基礎

1章  走近Java世界中的線程 2

1.1  程、線程與任務 2

1.2  多線程編程簡介 4

1.2.1  什么是多線程編程 4

1.2.2  為什么使用多線程 4

1.3  Java線程API簡介 5

1.3.1  線程的創(chuàng)建、啟動與運行 5

1.3.2  Runnable接口 9

1.3.3  線程屬性 12

1.3.4  Thread類的常用方 14

1.3.5  Thread類的一些廢棄方 16

1.4  無處不在的線程 17

1.5  線程的層次關系 19

1.6  線程的生命周期狀態(tài) 21

1.7  線程的監(jiān)視 22

1.8  多線程編程簡單運用實例 26

*1.9  多線程編程的優(yōu)勢和風險 27

1.10  本章小結 29

2章  多線程編程的目標與挑戰(zhàn) 31

2.1  串行、并發(fā)與并行 31

2.2  競態(tài) 33

2.2.1  二維表分析:解釋競態(tài)的結果 37

2.2.2  競態(tài)的模與競態(tài)產生的條件 39

2.3  線程安全性 42

2.4  原子性 43

2.5  可見性 49

2.6  有序性 56

2.6.1  重排序的概念 56

2.6.2  指令重排序 57

2.6.3  存儲子系統(tǒng)重排序 63

2.6.4  貌似串行語義 66

2.6.5  保證內存訪問的順序性 68

2.7  上下文切換 69

2.7.1  上下文切換及其產生原因 69

2.7.2  上下文切換的分類及體誘因 70

2.7.3  上下文切換的開銷和測量 71

2.8  線程的活性故障 73

2.9  爭用與調度 74

2.10  本章小結 77

3章  Java線程同步機制 80

3.1  線程同步機制簡介 80

3.2  鎖概述 81

3.2.1  鎖的作用 82

3.2.2  與鎖相關的幾個概念 84

3.2.3  鎖的開銷及其可能導致的問題 86

3.3  內部鎖:synchronized關鍵字 86

3.4  顯鎖:Lock接口 89

3.4.1  顯鎖的調度 91

3.4.2  顯鎖與內部鎖的比較 92

3.4.3  內部鎖還是顯鎖:鎖的選用 95

*3.4.4  改型鎖:讀寫鎖 95

3.5  鎖的適用場景 99

3.6  線程同步機制的底層助手:內存屏障 99

*3.7  鎖與重排序 102

3.8  輕量級同步機制:volatile關鍵字 105

3.8.1  volatile的作用 105

3.8.2  volatile變量的開銷 111

3.8.3  volatile的典型應用場景與實戰(zhàn)案例 111

3.9  實踐:正確實現(xiàn)看似簡單的單例模 120

3.10  CAS與原子變量 126

3.10.1  CAS 127

3.10.2  原子作工:原子變量類 129

3.11  對象的發(fā)布與逸出 135

3.11.1  對象的初始化安全:重訪final與static 137

3.11.2  安全發(fā)布與逸出 142

3.12  本章小結 143

4章  牛小試:玩轉線程 148

4.1  挖掘可并發(fā)點 148

4.2  新戰(zhàn)場上的老武器:分而治之 148

4.3  基于數(shù)據(jù)的分割實現(xiàn)并發(fā)化 149

4.4  基于任務的分割實現(xiàn)并發(fā)化 158

4.4.1  按任務的消耗屬性分割 159

4.4.2  實戰(zhàn)案例的啟發(fā) 169

4.4.3  按處理步驟分割 171

4.5  合理設置線程數(shù) 172

4.5.1  Amdahl's定律 172

4.5.2  線程數(shù)設置的原則 173

4.6  本章小結 177

5章  線程間協(xié)作 179

5.1  等待與通知:wait/notify 179

5.1.1  wait/notify的作用與用 180

5.1.2  wait/notify的開銷及問題 188

5.1.3  Object.notify()/notifyAll()的選用 191

*5.1.4  wait/notify與Thread.join() 191

5.2  Java條件變量 192

5.3  倒計時協(xié)調器:CountDownLatch 198

5.4  柵欄(CyclicBarrier) 203

5.5  生產者―消費者模 210

5.5.1  阻塞隊列 213

5.5.2  限購:流量控制與信號量(Semaphore) 216

*5.5.3  管道:線程間的直接輸出與輸入 218

5.5.4  一手交錢,一手交貨:雙緩沖與Exchanger 221

5.5.5  一個還是一批:產的粒度 223

5.5.6  再探線程與任務之間的關系 224

5.6  對不起,打擾一下:線程中斷機制 225

5.7  線程停止:看似簡單,實則不然 228

5.7.1  生產者―消費者模中的線程停止 233

5.7.2  實踐:Web應用中的線程停止 233

5.8  本章小結 236

6章  保障線程安全的設計技術 240

*6.1  Java運行時存儲空間 240

6.2  公無私:無狀態(tài)對象 243

6.3  以“不變”應萬變:不可變對象 248

6.4  我有我地盤:線程特有對象 254

6.4.1  線程特有對象可能導致的問題及其規(guī)避 258

6.4.2  線程特有對象的典型應用場景 264

6.5  裝飾器模 265

6.6  并發(fā)集合 267

6.7  本章小結 270

7章  線程的活性故障 273

7.1  鷸蚌相爭:死鎖 273

7.1.1  死鎖的檢測 274

7.1.2  死鎖產生的條件與規(guī)避 283

7.1.3  死鎖的恢復 296

7.2  沉睡不醒的睡美人:鎖死 301

7.2.1  信號丟失鎖死 301

7.2.2  嵌套監(jiān)視器鎖死 301

7.3  巧婦難為無米之炊:線程饑餓 307

7.4  屢戰(zhàn)屢敗,屢敗屢戰(zhàn):活鎖 307

7.5  本章小結 308

8章  線程管理 310

8.1  線程組 310

8.2  可靠性:線程的未捕獲異常與監(jiān)控 311

8.3  有組織有紀律:線程 316

8.4  線程的暫掛與恢復 318

8.5  線程的高效利用:線程池 320

8.5.1  任務的處理結果、異常處理與取消 326

8.5.2  線程池監(jiān)控 329

8.5.3  線程池死鎖 330

8.5.4  工作者線程的異常終止 330

8.6  本章小結 331

9章  Java異步編程 333

9.1  同步計與異步計 333

9.2  Java Executor框架 336

9.2.1  實用工類Executors 337

9.2.2  異步任務的批量執(zhí)行:CompletionService 339

9.3  異步計助手:FutureTask 344

9.3.1  實踐:實現(xiàn)XML文檔的異步解析 345

9.3.2  可重復執(zhí)行的異步任務 349

9.4  計劃任務 352

9.5  本章小結 358

10章  Java多線程程序的調試與測試 360

10.1  多線程程序的調試技巧 360

10.1.1  使用監(jiān)視點 360

10.1.2  設置暫掛策略 361

10.2  多線程程序的測試 363

10.2.1  可測試性 364

10.2.2  靜態(tài)檢查工:FindBugs 369

10.2.3  多線程程序的代碼復審 370

10.2.4  多線程程序的單元測試:JCStress 372

10.3  本章小結 375

二部分  多線程編程階

11章  多線程編程的硬件基礎與Java內存模型 378

11.1  填補處理器與內存之間的鴻溝:高速緩存 378

11.2  數(shù)據(jù)世界的交通規(guī)則:緩存一致性協(xié)議 382

11.3  硬件緩沖區(qū):寫緩沖器與無效化隊列 386

11.3.1  存儲轉發(fā) 388

11.3.2  再探內存重排序 388

11.3.3  再探可見性 391

11.4  基本內存屏障 392

11.5  Java同步機制與內存屏障 395

11.5.1  volatile關鍵字的實現(xiàn) 395

11.5.2  synchronized關鍵字的實現(xiàn) 397

11.5.3  Java虛擬機對內存屏障使用的優(yōu)化 398

11.5.4  final關鍵字的實現(xiàn) 398

11.6  Java內存模型 399

11.6.1  什么是Java內存模型 400

11.6.2  happen(s)-before關系 401

11.6.3  再探對象的安全發(fā)布 407

11.6.4  JSR 133 411

11.7  共享變量與性能 411

11.8  本章小結 411


12章  Java多線程程序的性能調校 415

12.1  Java虛擬機對內部鎖的優(yōu)化 415

12.1.1  鎖消除 415

12.1.2  鎖粗化 417

12.1.3  偏向鎖 419

12.1.4  適應性鎖 420

12.2  優(yōu)化對鎖的使用 421

12.2.1  鎖的開銷與鎖爭用監(jiān)視 421

12.2.2  使用可參數(shù)化鎖 424

12.2.3  減小臨界區(qū)的長度 428

12.2.4  減小鎖的粒度 432

12.2.5  考慮鎖的替代 438

12.3  減少系統(tǒng)內耗:上下文切換 438

12.4  多線程編程的“三十六計”:多線程設計模 440

12.5  性能的殺手:偽共享 441

12.5.1  Java對象內存布局 442

12.5.2  偽共享的偵測與消除 445

12.6  本章小結 454

Web參考 457

參考文獻 463

本文鏈接:http://fangxuan.com.cn/java/30.html

網友評論