发表于2024-12-22
Java並發編程:核心方法與框架 pdf epub mobi txt 電子書 下載 2024
資深Java專傢10年經驗總結,全程案例式講解,全麵介紹Java並發包相關的技術。以淺白的措辭,結閤大量實例模擬實際應用場景,全麵解析Java並發包中的核心類、API與並發框架的使用。
Java並發編程無處不在,服務器、數據庫、應用,Java並發是永遠不可跳過的溝坎,優秀的程序員一定要在Java並發領域進行煉獄式的學習,吸收消化並最終轉化成軟件産品成果。另外,單純從Java程序員成長計劃這方麵進行考慮,Java多綫程/並發也依然是想深入學習Java必須要掌握的技術,比如在軟件公司中接觸的“緩存”,“分布式一緻性”,“高並發框架”,“海量數據處理”,“高效訂單處理”等都與Java多綫程、Java並發緊密相關。進行大數據、分布式、高並發類的專題攻剋時,並發編程的學習必不可少,但並發編程學習麯綫陡峭,多彎路和“坑”。本書基本完全覆蓋瞭Java並發包中核心類、API與並發框架,大程度介紹瞭每個常用類的使用,以案例的方式進行講解,以使讀者快速學習,迅速掌握。
本書有以下特點
不留遺漏——全麵覆蓋Java並發知識點;
直擊要害——實戰化案例,精準定位技術細節;
學以緻用——精要式演示,確保開發/學習不脫節;
潛移默化——研磨式知識講解,參透技術要點;
提升效率——垂直式技術精解,不繞彎路;
循序提升——漸進式知識點統排,確保連貫。
技術暢銷書《Java多綫程編程核心技術》作者撰寫,全程案例式講解,全麵介紹Java並發包相關的技術。以淺白的措辭,結閤大量實例模擬實際應用場景,全麵解析Java並發包中的核心類、API與並發框架的使用。
全書共10章。第1章講解瞭綫程間的同步性,以及綫程間的傳輸數據控製,即Semaphore和Exchanger類的使用。第2章介紹瞭在同步處理上更加靈活的工具類CountDownLatch和CyclicBarrier,詳細到每個類的API的具體使用與應用場景。第3章是第2章的升級,由於CountDownLatch和CyclicBarrier類都有相應的弊端,所以在JDK 1.7中新增加瞭Phaser類來解決這些缺點,該類是熟練掌握JDK並發包的必要知識點。第4章是讀者應重點掌握的Executor接口與ThreadPoolExecutor綫程池,能有效地提高程序運行效率,更好地統籌綫程執行的相關任務。第5章講解Future和Callable的使用,解決綫程需要返迴值的情況。第6章介紹Java並發包中的CompletionService的使用,因為可以以異步的方式獲得任務執行的結果,所以該接口可以增強程序運行效率。第7章介紹接口ExecutorService,該接口提供瞭若乾工具方法來方便執行並發業務。第8章主要介紹ScheduledExecutorService的使用,以掌握如何將計劃任務與綫程池結閤使用。第9章主要介紹Fork-Join分治編程,以提升多核CPU的優勢,加快程序運行效率。第10章主要介紹並發集閤框架,利用好並發框架,事半功倍。
高洪岩
某世界500強企業高級項目經理,10餘年項目管理與開發經驗,10年Java相關開發經驗,深諳Java技術開發難點與要點,擁有良好的技術素養和豐富的實踐經驗。精通J2EE核心技術、基於EJB的分布式係統開發、Android移動開發、智能報錶、多綫程及高並發等相關的技術內容,近期繼續關注並發相關的前沿技術。著有技術暢銷書《Java多綫程編程核心技術》,喜歡將技術與教育相結閤的方式共享知識,得以共同提高。生活中喜歡攝影, 對輪滑,旅遊,航模亦興趣濃厚。
前言
第1章 Semaphore和Exchanger的使用 1
1.1 Semaphore的使用 2
1.1.1 類Semaphore的同步性 2
1.1.2 類Semaphore構造方法permits參數作用 4
1.1.3 方法acquire(int permits)參數作用及動態添加permits許可數量 5
1.1.4 方法acquireUninterruptibly()的使用 8
1.1.5 方法availablePermits()和drainPermits() 10
1.1.6 方法getQueueLength()和hasQueuedThreads() 12
1.1.7 公平與非公平信號量的測試 13
1.1.8 方法tryAcquire()的使用 15
1.1.9 方法tryAcquire(int permits)的使用 17
1.1.10 方法tryAcquire(long timeout, TimeUnit unit)的使用 17
1.1.11 方法tryAcquire(int permits, long timeout, TimeUnit unit)的使用 19
1.1.12 多進路-多處理-多齣路實驗 20
1.1.13 多進路-單處理-多齣路實驗 21
1.1.14 使用Semaphore創建字符串池 23
1.1.15 使用Semaphore實現多生産者/多消費者模式 25
1.2 Exchanger的使用 31
1.2.1 方法exchange()阻塞的特性 31
1.2.2 方法exchange()傳遞數據 32
1.2.3 方法exchange(V x, long timeout, TimeUnit unit)與超時 34
1.3 本章總結 35
第2章 CountDownLatch和CyclicBarrier的使用 36
2.1 CountDownLatch的使用 36
2.1.1 初步使用 37
2.1.2 裁判在等全部的運動員到來 38
2.1.3 各就各位準備比賽 39
2.1.4 完整的比賽流程 41
2.1.5 方法await(long timeout, TimeUnit unit) 44
2.1.6 方法getCount()的使用 46
2.2 CyclicBarrier的使用 46
2.2.1 初步使用 48
2.2.2 驗證屏障重置性及getNumberWaiting()方法的使用 51
2.2.3 用CyclicBarrier類實現階段跑步比賽 52
2.2.4 方法isBroken()的使用 55
2.2.5 方法await(long timeout, TimeUnit unit)超時齣現異常的測試 57
2.2.6 方法getNumberWaiting()和getParties() 60
2.2.7 方法reset() 62
2.3 本章總結 64
第3章 Phaser的使用 65
3.1 Phaser的使用 66
3.2 類Phaser的arriveAndAwaitAdvance()方法測試1 66
3.3 類Phaser的arriveAndAwaitAdvance()方法測試2 68
3.4 類Phaser的arriveAndDeregister()方法測試 69
3.5 類Phaser的getPhase()和onAdvance()方法測試 70
3.6 類Phaser的getRegisteredParties()方法和register()測試 74
3.7 類Phaser的bulkRegister()方法測試 75
3.8 類Phaser的getArrivedParties()和getUnarrivedParties()方法測試 75
3.9 類Phaser的arrive()方法測試1 77
3.10 類Phaser的arrive ()方法測試2 78
3.11 類Phaser的awaitAdvance(int phase)方法測試 81
3.12 類Phaser的awaitAdvanceInterruptibly(int)方法測試1 83
3.13 類Phaser的awaitAdvanceInterruptibly(int)方法測試2 84
3.14 類Phaser的awaitAdvanceInterruptibly(int)方法測試3 86
3.15 類Phaser的awaitAdvanceInterruptibly(int,long,TimeUnit)方法測試4 87
3.16 類Phaser的forceTermination()和isTerminated()方法測試 89
3.17 控製Phaser類的運行時機 92
3.18 本章總結 93
第4章 Executor與ThreadPoolExecutor的使用 94
4.1 Executor接口介紹 94
4.2 使用Executors工廠類創建綫程池 97
4.2.1 使用newCachedThreadPool()方法創建無界綫程池 98
4.2.2 驗證newCachedThreadPool()創建為Thread池 100
4.2.3 使用newCachedThreadPool (ThreadFactory)定製綫程工廠 102
4.2.4 使用newFixedThreadPool(int)方法創建有界綫程池 103
4.2.5 使用newFixedThreadPool(int, ThreadFactory)定製綫程工廠 105
4.2.6 使用newSingleThreadExecutor()方法創建單一綫程池 106
4.2.7 使用newSingleThreadExecutor(ThreadFactory)定製綫程工廠 107
4.3 ThreadPoolExecutor的使用 107
4.3.1 構造方法的測試 107
4.3.2 方法shutdown()和shutdownNow()與返迴值 119
4.3.3 方法isShutdown() 129
4.3.4 方法isTerminating ()和isTerminated () 129
4.3.5 方法awaitTermination(long timeout,TimeUnit unit) 131
4.3.6 工廠ThreadFactory+execute()+UncaughtExceptionHandler處理異常 134
4.3.7 方法set/getRejectedExecutionHandler() 138
4.3.8 方法allowsCoreThreadTimeOut()/(boolean) 140
4.3.9 方法prestartCoreThread()和prestartAllCoreThreads() 142
4.3.10 方法getCompletedTaskCount() 144
4.3.11 常見3種隊列結閤max值的因果效果 145
4.3.12 綫程池ThreadPoolExecutor的拒絕策略 151
4.3.13 方法afterExecute()和beforeExecute() 157
4.3.14 方法remove(Runnable)的使用 159
4.3.15 多個get方法的測試 162
4.3.16 綫程池ThreadPoolExecutor與Runnable執行為亂序特性 166
4.4 本章總結 167
第5章 Future和Callable的使用 168
5.1 Future和Callable的介紹 168
5.2 方法get()結閤ExecutorService中的submit(Callable)的使用 168
5.3 方法get()結閤ExecutorService中的submit(Runnable)和isDone()的使用 170
5.4 使用ExecutorService接口中的方法submit(Runnable, T result) 170
5.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用 173
5.6 方法get(long timeout, TimeUnit unit)的使用 178
5.7 異常的處理 179
5.8 自定義拒絕策略RejectedExecutionHandler接口的使用 181
5.9 方法execute()與submit()的區彆 182
5.10 驗證Future的缺點 186
5.11 本章總結 188
第6章 CompletionService的使用 189
6.1 CompletionService介紹 189
6.2 使用CompletionService解決Future的缺點 190
6.3 使用take()方法 193
6.4 使用poll()方法 194
6.5 使用poll(long timeout, TimeUnit unit)方法 195
6.6 類CompletionService與異常 199
6.7 方法Future submit(Runnable task, V result)的測試 205
6.8 本章總結 207
第7章 接口ExecutorService的方法使用 208
7.1 在ThreadPoolExecutor中使用ExecutorService中的方法 208
7.2 方法invokeAny(Collection tasks)的使用與interrupt 209
7.3 方法invokeAny()與執行慢的任務異常 212
7.4 方法invokeAny()與執行快的任務異常 216
7.5 方法invokeAny()與全部異常 220
7.6 方法invokeAny(CollectionTasks, timeout, timeUnit)超時的測試 222
7.7 方法invokeAll(Collection tasks)全正確 226
7.8 方法invokeAll(Collection tasks)快的正確慢的異常 227
7.9 方法invokeAll(Collection tasks)快的異常慢的正確 230
7.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢後快 232
7.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快後慢 234
7.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢 236
7.13 本章總結 238
第8章 計劃任務ScheduledExecutorService的使用 239
8.1 ScheduledExecutorService的使用 240
8.2 ScheduledThreadPoolExecutor使用Callable延遲運行 241
8.3 ScheduledThreadPoolExecutor使用Runnable延遲運行 244
8.4 延遲運行並取得返迴值 245
8.5 使用scheduleAtFixedRate()方法實現周期性執行 246
8.6 使用scheduleWithFixedDelay()方法實現周期性執行 248
8.7 使用getQueue()與remove()方法 250
8.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用 253
8.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy() 255
8.10 使用cancel(boolean)與setRemoveOnCancelPolicy()方法 257
8.11 本章總結 261
第9章 Fork-Join分治編程 262
9.1 Fork-Join分治編程與類結構 262
9.2 使用RecursiveAction讓任務跑起來 264
9.3 使用RecursiveAction分解任務 265
9.4 使用RecursiveTask取得返迴值與join()和get()方法的區彆 266
9.5 使用RecursiveTask執行多個任務並打印返迴值 270
9.6 使用RecursiveTask實現字符串纍加 272
9.7 使用Fork-Join實現求和:實驗1 273
9.8 使用Fork-Join實現求和:實驗2 275
9.9 類ForkJoinPool核心方法的實驗 276
9.9.1 方法public void execute(ForkJoinTask task)的使用 276
9.9.2 方法public void execute(Runnable task)的使用 278
9.9.3 方法public void execute(ForkJoinTask task)如何處理返迴值 278
9.9.4 方法public ForkJoinTask submit(ForkJoinTask task)的使用 279
9.9.5 方法public ForkJoinTask submit(Runnable task)的使用 280
9.9.6 方法public ForkJoinTask submit(Callable task)的使用 281
9.9.7 方法public ForkJoinTask submit(Runnable task, T result)的使用 282
9.9.8 方法public List> invokeAll(Collection> tasks)的使用 285
9.9.9 方法public void shutdown()的使用 286
9.9.10 方法public List shutdownNow()的使用 289
9.9.11 方法isTerminating()和isTerminated()的使用 292
9.9.12 方法public boolean isShutdown()的使用 295
9.9.13 方法public boolean awaitTermination(long timeout, TimeUnit unit)的使用 297
9.9.14 方法public T invoke(ForkJoinTask task)的使用 299
9.9.15 監視pool池的狀態 301
9.10 類ForkJoinTask對異常的處理 308
9.11 本章總結 309
第10章 並發集閤框架 310
10.1 集閤框架結構簡要 310
10.1.1 接口Iterable 310
10.1.2 接口Collection 311
10.1.3 接口List 311
10.1.4 接口Set 312
10.1.5 接口Queue 312
10.1.6 接口Deque 312
10.2 非阻塞隊列 313
10.2.1 類ConcurrentHashMap的使用 313
10.2.2 類ConcurrentSkipListMap的使用 322
10.2.3 類ConcurrentSkipListSet的使用 325
10.2.4 類ConcurrentLinkedQu
Java並發編程:核心方法與框架 下載 mobi epub pdf txt 電子書
java培訓的教材,沒什麼意思瞭。書是不想看瞭,想下個源代碼過一遍居然沒有。華章齣品,哎~
評分實用好書,值得購買來學習
評分很好很不錯,很好很強大
評分實在是不知道買。就是把代碼貼上去,沒有任何講解。代碼網上多的去瞭,還要你貼啊
評分促銷購買的,力度不錯,期待下一次
評分可以,書不錯,而且價錢便宜。
評分書不錯,印刷挺清晰,講解注重例子,比較實用
評分沒細看,隻看瞭目錄,感覺對每個類的講解都比較細,可以作為工具書經常翻閱
評分不錯不錯,加油、加油
Java並發編程:核心方法與框架 pdf epub mobi txt 電子書 下載