中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
實戰JAVA高并發程序設計(第2版)

包郵 實戰JAVA高并發程序設計(第2版)

作者:葛一鳴
出版社:電子工業出版社出版時間:2017-02-01
開本: 其他 頁數: 416
中 圖 價:¥50.0(5.6折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

實戰JAVA高并發程序設計(第2版) 版權信息

實戰JAVA高并發程序設計(第2版) 本書特色

適讀人群 :本書內容豐富,實例典型,實用性強,適合有一定Java基礎的技術開發人員閱讀。 結構清晰。總體上循序漸進,逐步提升。每一章都各自有鮮明的側重點,有利于讀者快速抓住重點。 理論結合實戰。本書注重實戰,書中重要的知識點都安排了代碼實例,幫助讀者理解。同時也不忘記對系統的內部實現原理進行深度剖析。 通俗易懂。盡量避免采用過于理論的描述方式,簡單的白話文風格貫穿全書,配圖基本上為手工繪制,降低了理解難度,并盡量做到讀者在閱讀過程中少盲點、無盲點。 讀者評價:脈絡清晰,查閱方便,講解到位,通俗易懂,多線程和高并發專業**。

實戰JAVA高并發程序設計(第2版) 內容簡介

在單核CPU時代,單任務在一個時間點只能執行單一程序,隨著多核CPU的發展,并行程序開發變得尤為重要。本書主要介紹基于Java的并行程序設計基礎、思路、方法和實戰。靠前,立足于并發程序基礎,詳細介紹Java進行并行程序設計的基本方法。第二,進一步詳細介紹了JDK對并行程序的強大支持,幫助讀者快速、穩健地進行并行程序開發。第三,詳細討論了“鎖”的優化和提高并行程序性能級別的方法和思路。第四,介紹了并行的基本設計模式,以及Java 8/9/10對并行程序的支持和改進。第五,介紹了高并發框架Akka的使用方法。第六,詳細介紹了并行程序的調試方法。第七,分析Jetty代碼并給出一些其在高并發優化方面的例子。本書內容豐富,實例典型,實用性強,適合有一定Java基礎的技術開發人員閱讀。

實戰JAVA高并發程序設計(第2版) 目錄

目  錄



第1章 走入并行世界 1
1.1 何去何從的并行計算 1
1.1.1 忘掉那該死的并行 2
1.1.2 可怕的現實:摩爾定律的失效 4
1.1.3 柳暗花明:不斷地前進 5
1.1.4 光明或是黑暗 6
1.2 你必須知道的幾個概念 7
1.2.1 同步(Synchronous)和異步(Asynchronous) 7
1.2.2 并發(Concurrency)和并行(Parallelism) 8
1.2.3 臨界區 9
1.2.4 阻塞(Blocking)和非阻塞(Non-Blocking) 9
1.2.5 死鎖(Deadlock)、饑餓(Starvation)和活鎖(Livelock) 10
1.3 并發級別 11
1.3.1 阻塞 11
1.3.2 無饑餓(Starvation-Free) 11
1.3.3 無障礙(Obstruction-Free) 12
1.3.4 無鎖(Lock-Free) 13
1.3.5 無等待(Wait-Free) 13
1.4 有關并行的兩個重要定律 14
1.4.1 Amdahl定律 14
1.4.2 Gustafson定律 16
1.4.3 是否相互矛盾 17
1.5 回到Java:JMM 18
1.5.1 原子性(Atomicity) 18
1.5.2 可見性(Visibility) 20
1.5.3 有序性(Ordering) 22
1.5.4 哪些指令不能重排:Happen-Before規則 27
第2章 Java并行程序基礎 29
2.1 有關線程你必須知道的事 29
2.2 初始線程:線程的基本操作 32
2.2.1 新建線程 32
2.2.2 終止線程 34
2.2.3 線程中斷 38
2.2.4 等待(wait)和通知(notify) 41
2.2.5 掛起(suspend)和繼續執行(resume)線程 45
2.2.6 等待線程結束(join)和謙讓(yeild) 49
2.3 volatile與Java內存模型(JMM) 50
2.4 分門別類的管理:線程組 53
2.5 駐守后臺:守護線程(Daemon) 54
2.6 先做重要的事:線程優先級 56
2.7 線程安全的概念與關鍵字synchronized 57
2.8 程序中的幽靈:隱蔽的錯誤 61
2.8.1 無提示的錯誤案例 62
2.8.2 并發下的ArrayList 63
2.8.3 并發下詭異的HashMap 64
2.8.4 初學者常見的問題:錯誤的加鎖 67
第3章 JDK并發包 71
3.1 多線程的團隊協作:同步控制 71
3.1.1 關鍵字synchronized的功能擴展:重入鎖 72
3.1.2 重入鎖的好搭檔:Condition 81
3.1.3 允許多個線程同時訪問:信號量(Semaphore) 85
3.1.4 ReadWriteLock讀寫鎖 86
3.1.5 倒計數器:CountDownLatch 89
3.1.6 循環柵欄:CyclicBarrier 91
3.1.7 線程阻塞工具類:LockSupport 94
3.1.8 Guava和RateLimiter限流 98
3.2 線程復用:線程池 101
3.2.1 什么是線程池 102
3.2.2 不要重復發明輪子:JDK對線程池的支持 102
3.2.3 刨根究底:核心線程池的內部實現 108
3.2.4 超負載了怎么辦:拒絕策略 112
3.2.5 自定義線程創建:ThreadFactory 115
3.2.6 我的應用我做主:擴展線程池 116
3.2.7 合理的選擇:優化線程池線程數量 119
3.2.8 堆棧去哪里了:在線程池中尋找堆棧 120
3.2.9 分而治之:Fork/Join框架 124
3.2.10 Guava中對線程池的擴展 128
3.3 不要重復發明輪子:JDK的并發容器 130
3.3.1 超好用的工具類:并發集合簡介 130
3.3.2 線程安全的HashMap 131
3.3.3 有關List的線程安全 132
3.3.4 高效讀寫的隊列:深度剖析ConcurrentLinkedQueue類 132
3.3.5 高效讀取:不變模式下的CopyOnWriteArrayList類 138
3.3.6 數據共享通道:BlockingQueue 139
3.3.7 隨機數據結構:跳表(SkipList) 144
3.4 使用JMH進行性能測試 146
3.4.1 什么是JMH 147
3.4.2 Hello JMH 147
3.4.3 JMH的基本概念和配置 150
3.4.4 理解JMH中的Mode 151
3.4.5 理解JMH中的State 153
3.4.6 有關性能的一些思考 154
3.4.7 CopyOnWriteArrayList類與ConcurrentLinkedQueue類 157
第4章 鎖的優化及注意事項 161
4.1 有助于提高鎖性能的幾點建議 162
4.1.1 減少鎖持有時間 162
4.1.2 減小鎖粒度 163
4.1.3 用讀寫分離鎖來替換獨占鎖 165
4.1.4 鎖分離 165
4.1.5 鎖粗化 168
4.2 Java虛擬機對鎖優化所做的努力 169
4.2.1 鎖偏向 169
4.2.2 輕量級鎖 169
4.2.3 自旋鎖 170
4.2.4 鎖消除 170
4.3 人手一支筆:ThreadLocal 171
4.3.1 ThreadLocal的簡單使用 171
4.3.2 ThreadLocal的實現原理 173
4.3.3 對性能有何幫助 179
4.4 無鎖 182
4.4.1 與眾不同的并發策略:比較交換 182
4.4.2 無鎖的線程安全整數:AtomicInteger 183
4.4.3 Java中的指針:Unsafe類 185
4.4.4 無鎖的對象引用:AtomicReference 187
4.4.5 帶有時間戳的對象引用:AtomicStampedReference 190
4.4.6 數組也能無鎖:AtomicIntegerArray 193
4.4.7 讓普通變量也享受原子操作:AtomicIntegerFieldUpdater 194
4.4.8 挑戰無鎖算法:無鎖的Vector實現 196
4.4.9 讓線程之間互相幫助:細看SynchronousQueue的實現 201
4.5 有關死鎖的問題 205
第5章 并行模式與算法 209
5.1 探討單例模式 209
5.2 不變模式 213
5.3 生產者-消費者模式 215
5.4 高性能的生產者-消費者模式:無鎖的實現 220
5.4.1 無鎖的緩存框架:Disruptor 221
5.4.2 用Disruptor框架實現生產者-消費者模式的案例 222
5.4.3 提高消費者的響應時間:選擇合適的策略 225
5.4.4 CPU Cache的優化:解決偽共享問題 226
5.5 Future模式 230
5.5.1 Future模式的主要角色 232
5.5.2 Future模式的簡單實現 233
5.5.3 JDK中的Future模式 236
5.5.4 Guava對Future模式的支持 238
5.6 并行流水線 240
5.7 并行搜索 244
5.8 并行排序 246
5.8.1 分離數據相關性:奇偶交換排序 246
5.8.2 改進的插入排序:希爾排序 250
5.9 并行算法:矩陣乘法 254
5.10 準備好了再通知我:網絡NIO 258
5.10.1 基于Socket的服務端多線程模式 259
5.10.2 使用NIO進行網絡編程 264
5.10.3 使用NIO來實現客戶端 272
5.11 讀完了再通知我:AIO 274
5.11.1 AIO EchoServer的實現 275
5.11.2 AIO Echo客戶端的實現 277
第6章 Java 8/9/10與并發 281
6.1 Java 8的函數式編程簡介 281
6.1.1 函數作為一等公民 282
6.1.2 無副作用 283
6.1.3 聲明式的(Declarative) 283
6.1.4 不變的對象 284
6.1.5 易于并行 284
6.1.6 更少的代碼 284
6.2 函數式編程基礎 285
6.2.1 FunctionalInterface注釋 285
6.2.2 接口默認方法 286
6.2.3 lambda表達式 290
6.2.4 方法引用 291
6.3 一步一步走入函數式編程 293
6.4 并行流與并行排序 298
6.4.1 使用并行流過濾數據 298
6.4.2 從集合得到并行流 299
6.4.3 并行排序 299
6.5 增強的Future:CompletableFuture 300
6.5.1 完成了就通知我 300
6.5.2 異步執行任務 301
6.5.3 流式調用 303
6.5.4 CompletableFuture中的異常處理 303
6.5.5 組合多個CompletableFuture 304
6.5.6 支持timeout的 CompletableFuture 306
6.6 讀寫鎖的改進:StampedLock 306
6.6.1 StampedLock使用示例 307
6.6.2 StampedLock的小陷阱 308
6.6.3 有關StampedLock的實現思想 310
6.7 原子類的增強 313
6.7.1 更快的原子類:LongAdder 314
6.7.2 LongAdder功能的增強版:LongAccumulator 320
6.8 ConcurrentHashMap的增強 321
6.8.1 foreach操作 321
6.8.2 reduce操作 321
6.8.3 條件插入 322
6.8.4 search操作 323
6.8.5 其他新方法 324
6.9 發布和訂閱模式 324
6.9.1 簡單的發布訂閱例子 326
6.9.2 數據處理鏈 328
第7章 使用Akka構建高并發程序 331
7.1 新并發模型:Actor 332
7.2 Akka之Hello World 332
7.3 有關消息投遞的一些說明 336
7.4 Actor的生命周期 337
7.5 監督策略 341
7.6 選擇Actor 346
7.7 消息收件箱(Inbox) 346
7.8 消息路由 348
7.9 Actor的內置狀態轉換 351
7.10 詢問模式:Actor中的Future 354
7.11 多個Actor同時修改數據:Agent 356
7.12 像數據庫一樣操作內存數據:軟件事務內存 359
7.13 一個有趣的例子:并發粒子群的實現 363
7.13.1 什么是粒子群算法 364
7.13.2 粒子群算法的計算過程 364
7.13.3 粒子群算法能做什么 366
7.13.4 使用Akka實現粒子群 367
第8章 并行程序調試 375
8.1 準備實驗樣本 375
8.2 正式起航 376
8.3 掛起整個虛擬機 379
8.4 調試進入ArrayList內部 380
第9章 多線程優化示例―Jetty核心代碼分析 385
9.1 Jetty簡介與架構 385
9.2 Jetty服務器初始化 387
9.2.1 初始化線程池 387
9.2.2 初始化ScheduledExecutorScheduler 389
9.2.3 初始化ByteBufferPool 390
9.2.4 維護ConnectionFactory 393
9.2.5 計算ServerConnector的線程數量 394
9.3 啟動Jetty服務器 394
9.3.1 設置啟動狀態 394
9.3.2 注冊ShutdownMonitor 395
9.3.3 計算系統的線程數量 395
9.3.4 啟動QueuedThreadPool 396
9.3.5 啟動Connector 396
9.4 處理HTTP請求 399
9.4.1 Accept成功 399
9.4.2 請求處理 401

展開全部

實戰JAVA高并發程序設計(第2版) 作者簡介

葛一鳴:煉數成金特約講師,國家認證系統分析師,獲得Oracle OCP認證。長期從事Java軟件開發工作,對Java程序設計、JVM有深入研究,對設計模式、人工智能、神經網絡、數據挖掘等技術有濃厚興趣,著有《實戰Java虛擬機》一書,目前在Dataguru開設多門課程,包括Java并發、JVM、Git等。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 水质传感器_水质监测站_雨量监测站_水文监测站-山东水境传感科技有限公司 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 科普仪器菏泽市教育教学仪器总厂 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 污水处理设备-海普欧环保集团有限公司 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 湖南自考_湖南自学考试网| 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 电液推杆生产厂家|电动推杆|液压推杆-扬州唯升机械有限公司 | 标准件-非标紧固件-不锈钢螺栓-非标不锈钢螺丝-非标螺母厂家-三角牙锁紧自攻-南京宝宇标准件有限公司 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 百度网站优化,关键词排名,SEO优化-搜索引擎营销推广 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 选矿设备,选矿生产线,选矿工艺,选矿技术-昆明昆重矿山机械 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 杭州厂房降温,车间降温设备,车间通风降温,厂房降温方案,杭州嘉友实业爽风品牌 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 磁力抛光机_磁力研磨机_磁力去毛刺机-冠古设备厂家|维修|租赁【官网】 | 转子泵_凸轮泵_凸轮转子泵厂家-青岛罗德通用机械设备有限公司 | 上海logo设计| RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 |