-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
Java并發(fā)編程的藝術(shù) 版權(quán)信息
- ISBN:9787111508243
- 條形碼:9787111508243 ; 978-7-111-50824-3
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
Java并發(fā)編程的藝術(shù) 本書特色
第1章介紹java并發(fā)編程的挑戰(zhàn),會(huì)向讀者說明可能會(huì)遇到哪些問題,以及如何解決。第2章java并發(fā)編程的底層實(shí)現(xiàn)原理,從cpu和jvm2個(gè)層面剖析。第3章詳細(xì)深入介紹了java的內(nèi)存模型。第4章從介紹多線程技術(shù)帶來的好處開始,講述了如何啟動(dòng)和終止線程以及線程的狀態(tài),詳細(xì)闡述了多線程之間進(jìn)行通信的基本方式和等待/通知經(jīng)典范式。第5章介紹java并發(fā)包中與鎖相關(guān)的api和組件,以及這些api和組件的使用方式和實(shí)現(xiàn)細(xì)節(jié)。第6章介紹了java中的大部分并發(fā)容器及其實(shí)現(xiàn)原理。第7章介紹了java中的原子操作類,并給出一些實(shí)例。第8章介紹了java中提供的很多并發(fā)工具類。第9章介紹了java中的線程池實(shí)現(xiàn)原理和使用建議。第10章介紹了executor框架的整體結(jié)構(gòu)和成員組件。第11章介紹幾個(gè)并發(fā)編程的實(shí)戰(zhàn)與并發(fā)編程問題排查。
Java并發(fā)編程的藝術(shù) 內(nèi)容簡介
第1章介紹Java并發(fā)編程的挑戰(zhàn),會(huì)向讀者說明可能會(huì)遇到哪些問題,以及如何解決。第2章Java并發(fā)編程的底層實(shí)現(xiàn)原理,從CPU和JVM2個(gè)層面剖析。第3章詳細(xì)深入介紹了Java的內(nèi)存模型。第4章從介紹多線程技術(shù)帶來的好處開始,講述了如何啟動(dòng)和終止線程以及線程的狀態(tài),詳細(xì)闡述了多線程之間進(jìn)行通信的基本方式和等待/通知經(jīng)典范式。第5章介紹Java并發(fā)包中與鎖相關(guān)的API和組件,以及這些API和組件的使用方式和實(shí)現(xiàn)細(xì)節(jié)。第6章介紹了Java中的大部分并發(fā)容器及其實(shí)現(xiàn)原理。第7章介紹了Java中的原子操作類,并給出一些實(shí)例。第8章介紹了Java中提供的很多并發(fā)工具類。第9章介紹了Java中的線程池實(shí)現(xiàn)原理和使用建議。第10章介紹了Executor框架的整體結(jié)構(gòu)和成員組件。第11章介紹幾個(gè)并發(fā)編程的實(shí)戰(zhàn)與并發(fā)編程問題排查。
Java并發(fā)編程的藝術(shù) 目錄
前言
第1章并發(fā)編程的挑戰(zhàn)
1.1上下文切換
1.1.1多線程一定快嗎
1.1.2測試上下文切換次數(shù)和時(shí)長
1.1.3如何減少上下文切換
1.1.4減少上下文切換實(shí)戰(zhàn)
1.2死鎖
1.3資源限制的挑戰(zhàn)
1.4本章小結(jié)
第2章java并發(fā)機(jī)制的底層實(shí)現(xiàn)原理
2.1volatile的應(yīng)用
2.2synchronized的實(shí)現(xiàn)原理與應(yīng)用
2.2.1java對象頭
2.2.2鎖的升級與對比
2.3原子操作的實(shí)現(xiàn)原理
2.4本章小結(jié)
第3章java內(nèi)存模型
3.1java內(nèi)存模型的基礎(chǔ)
3.1.1并發(fā)編程模型的兩個(gè)關(guān)鍵問題
3.1.2java內(nèi)存模型的抽象結(jié)構(gòu)
3.1.3從源代碼到指令序列的重排序
3.1.4并發(fā)編程模型的分類
3.1.5happensbefore簡介
3.2重排序
3.2.1數(shù)據(jù)依賴性
3.2.2asifserial語義
3.2.3程序順序規(guī)則
3.2.4重排序?qū)Χ嗑程的影響
3.3順序一致性
3.3.1數(shù)據(jù)競爭與順序一致性
3.3.2順序一致性內(nèi)存模型
3.3.3同步程序的順序一致性效果
3.3.4未同步程序的執(zhí)行特性
3.4volatile的內(nèi)存語義
3.4.1volatile的特性
3.4.2volatile寫讀建立的happensbefore關(guān)系
3.4.3volatile寫讀的內(nèi)存語義
3.4.4volatile內(nèi)存語義的實(shí)現(xiàn)
3.4.5jsr133為什么要增強(qiáng)volatile的內(nèi)存語義
3.5鎖的內(nèi)存語義
3.5.1鎖的釋放獲取建立的happensbefore關(guān)系
3.5.2鎖的釋放和獲取的內(nèi)存語義
3.5.3鎖內(nèi)存語義的實(shí)現(xiàn)
3.5.4concurrent包的實(shí)現(xiàn)
3.6final域的內(nèi)存語義
3.6.1final域的重排序規(guī)則
3.6.2寫final域的重排序規(guī)則
3.6.3讀final域的重排序規(guī)則
3.6.4final域?yàn)橐妙愋?br />3.6.5為什么final引用不能從構(gòu)造函數(shù)內(nèi)"溢出"
3.6.6final語義在處理器中的實(shí)現(xiàn)
3.6.7jsr133為什么要增強(qiáng)f?inal的語義
3.7happensbefore
3.7.1jmm的設(shè)計(jì)
3.7.2happensbefore的定義
3.7.3happensbefore規(guī)則
3.8雙重檢查鎖定與延遲初始化
3.8.1雙重檢查鎖定的由來
3.8.2問題的根源
3.8.3基于volatile的解決方案
3.8.4基于類初始化的解決方案
3.9java內(nèi)存模型綜述
3.9.1處理器的內(nèi)存模型
3.9.2各種內(nèi)存模型之間的關(guān)系
3.9.3jmm的內(nèi)存可見性保證
3.9.4jsr133對舊內(nèi)存模型的修補(bǔ)
3.10本章小結(jié)
第4章java并發(fā)編程基礎(chǔ)
4.1線程簡介
4.1.1什么是線程
4.1.2為什么要使用多線程
4.1.3線程優(yōu)先級
4.1.4線程的狀態(tài)
4.1.5daemon線程
4.2啟動(dòng)和終止線程
4.2.1構(gòu)造線程
4.2.2啟動(dòng)線程
4.2.3理解中斷
4.2.4過期的suspend()、resume()和stop()
4.2.5安全地終止線程
4.3線程間通信
4.3.1volatile和synchronized關(guān)鍵字
4.3.2等待/通知機(jī)制
4.3.3等待/通知的經(jīng)典范式
4.3.4管道輸入/輸出流
4.3.5thread.join()的使用
4.3.6threadlocal的使用
4.4線程應(yīng)用實(shí)例
4.4.1等待超時(shí)模式
4.4.2一個(gè)簡單的數(shù)據(jù)庫連接池示例
4.4.3線程池技術(shù)及其示例
4.4.4一個(gè)基于線程池技術(shù)的簡單web服務(wù)器
4.5本章小結(jié)
第5章java中的鎖
5.1lock接口
5.2隊(duì)列同步器
5.2.1隊(duì)列同步器的接口與示例
5.2.2隊(duì)列同步器的實(shí)現(xiàn)分析
5.3重入鎖
5.4讀寫鎖
5.4.1讀寫鎖的接口與示例
5.4.2讀寫鎖的實(shí)現(xiàn)分析
5.5locksupport工具
5.6condition接口
5.6.1condition接口與示例
5.6.2condition的實(shí)現(xiàn)分析
5.7本章小結(jié)
第6章java并發(fā)容器和框架
6.1concurrenthashmap的實(shí)現(xiàn)原理與使用
6.1.1為什么要使用concurrenthashmap
6.1.2concurrenthashmap的結(jié)構(gòu)
6.1.3concurrenthashmap的初始化
6.1.4定位segment
6.1.5concurrenthashmap的操作
6.2concurrentlinkedqueue
6.2.1concurrentlinkedqueue的結(jié)構(gòu)
6.2.2入隊(duì)列
6.2.3出隊(duì)列
6.3java中的阻塞隊(duì)列
6.3.1什么是阻塞隊(duì)列
6.3.2java里的阻塞隊(duì)列
6.3.3阻塞隊(duì)列的實(shí)現(xiàn)原理
6.4fork/join框架
6.4.1什么是fork/join框架
6.4.2工作竊取算法
6.4.3fork/join框架的設(shè)計(jì)
6.4.4使用fork/join框架
6.4.5fork/join框架的異常處理
6.4.6fork/join框架的實(shí)現(xiàn)原理
6.5本章小結(jié)
第7章java中的13個(gè)原子操作類
7.1原子更新基本類型類
7.2原子更新數(shù)組
7.3原子更新引用類型
7.4原子更新字段類
7.5本章小結(jié)
第8章java中的并發(fā)工具類
8.1等待多線程完成的countdownlatch
8.2同步屏障cyclicbarrier
8.2.1cyclicbarrier簡介
8.2.2cyclicbarrier的應(yīng)用場景
8.2.3cyclicbarrier和countdownlatch的區(qū)別
8.3控制并發(fā)線程數(shù)的semaphore
8.4線程間交換數(shù)據(jù)的exchanger
8.5本章小結(jié)
第9章java中的線程池
9.1線程池的實(shí)現(xiàn)原理
9.2線程池的使用
9.2.1線程池的創(chuàng)建
9.2.2向線程池提交任務(wù)
9.2.3關(guān)閉線程池
9.2.4合理地配置線程池
9.2.5線程池的監(jiān)控
9.3本章小結(jié)
第10章executor框架
10.1executor框架簡介
10.1.1executor框架的兩級調(diào)度模型
10.1.2executor框架的結(jié)構(gòu)與成員
10.2threadpoolexecutor詳解
10.2.1fixedthreadpool詳解
10.2.2singlethreadexecutor詳解
10.2.3cachedthreadpool詳解
10.3scheduledthreadpoolexecutor詳解
10.3.1scheduledthreadpoolexecutor的運(yùn)行機(jī)制
10.3.2scheduledthreadpoolexecutor的實(shí)現(xiàn)
10.4futuretask詳解
10.4.1futuretask簡介
10.4.2futuretask的使用
10.4.3futuretask的實(shí)現(xiàn)
10.5本章小結(jié)
第11章java并發(fā)編程實(shí)踐
11.1生產(chǎn)者和消費(fèi)者模式
11.1.1生產(chǎn)者消費(fèi)者模式實(shí)戰(zhàn)
11.1.2多生產(chǎn)者和多消費(fèi)者場景
11.1.3線程池與生產(chǎn)消費(fèi)者模式
11.2線上問題定位
11.3性能測試
11.4異步任務(wù)池
11.5本章小結(jié)
Java并發(fā)編程的藝術(shù) 作者簡介
方騰飛(花名清英,英文名kiral), 螞蟻金服集團(tuán)技術(shù)專家,從事Java開發(fā)近10年。5年以上的團(tuán)隊(duì)管理、項(xiàng)目管理和敏捷開發(fā)經(jīng)驗(yàn),崇尚團(tuán)隊(duì)合作。曾參與CMS、電子海圖、SOC、ITIL、電子商務(wù)網(wǎng)站和信貸管理系統(tǒng)等項(xiàng)目。目前在螞蟻金服網(wǎng)商銀行貸款管理團(tuán)隊(duì)負(fù)責(zé)數(shù)據(jù)采集平臺(tái)開發(fā)工作。與同事合作開發(fā)了tala code Review插件,深受阿里數(shù)千名工程師擁躉,并開發(fā)過開源工具jdbcutil(https://github.com/kiral/utils)。創(chuàng)辦了并發(fā)編程網(wǎng),組織翻譯了百余篇國外優(yōu)秀技術(shù)文章,并曾為InfoQ撰寫“聊聊并發(fā)”專欄,在《程序員》雜志撰寫敏捷實(shí)踐系列文章 魏 鵬, 阿里巴巴集團(tuán)技術(shù)專家,在阿里巴巴中國網(wǎng)站技術(shù)部工作多年,曾擔(dān)任中國網(wǎng)站交易平臺(tái)架構(gòu)師,主導(dǎo)了交易系統(tǒng)服務(wù)化工作,設(shè)計(jì)實(shí)現(xiàn)的數(shù)據(jù)遷移系統(tǒng)高效地完成了阿里巴巴中國網(wǎng)站交易數(shù)據(jù)到阿里巴巴集團(tuán)的遷移工作。目前在阿里巴巴共享業(yè)務(wù)事業(yè)部從事Java應(yīng)用容器Pandora和服務(wù)框架HSF的相關(guān)工作,其中Java應(yīng)用容器Pandora是阿里巴巴中間件運(yùn)行的基礎(chǔ),而服務(wù)框架HSF則是阿里巴巴集團(tuán)實(shí)現(xiàn)服務(wù)化的主要解決方案,二者在阿里巴巴擁有為廣泛的使用量。個(gè)人平時(shí)喜歡閱讀技術(shù)書籍,翻譯一些國外優(yōu)秀文檔,喜歡總結(jié)、樂于分享,對Java應(yīng)用容器、多線程編程以及分布式系統(tǒng)感興趣。 程曉明, 1號店資深架構(gòu)師,從事1號店交易平臺(tái)系統(tǒng)的開發(fā),技術(shù)上關(guān)注并發(fā)與NIO。因5年前遇到的一個(gè)線上故障,解決過程中對Java并發(fā)編程產(chǎn)生了濃厚的興趣,從此開始了漫長的探索之旅:從底層實(shí)現(xiàn)機(jī)制、內(nèi)存模型到Java同步?v觀我自己對Java并發(fā)的學(xué)習(xí)過程,是一個(gè)從高層到底層再到高層的一個(gè)反復(fù)迭代的過程,我估計(jì)很多讀者的學(xué)習(xí)過程應(yīng)該與我類似。文章多見諸《IBM developerWorks》、InfoQ和《程序員》雜志。
- >
名家?guī)阕x魯迅:朝花夕拾
- >
詩經(jīng)-先民的歌唱
- >
我從未如此眷戀人間
- >
中國人在烏蘇里邊疆區(qū):歷史與人類學(xué)概述
- >
【精裝繪本】畫給孩子的中國神話
- >
李白與唐代文化
- >
羅曼·羅蘭讀書隨筆-精裝
- >
唐代進(jìn)士錄