[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • Java並發編程深度解析與實戰
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    585-848
    【優惠價】
    366-530
    【作者】 譚鋒(Mic) 
    【所屬類別】 圖書  計算機/網絡  程序設計  Java 
    【出版社】電子工業出版社 
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:128開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    叢書名:咕泡教育Java架構師成長叢書
    作者:譚鋒(Mic)

    出版社:電子工業出版社
    出版時間:2021年10月 

        
        
    "

    產品特色

    編輯推薦

    ★ 涵蓋Java整個並發編程體繫的核心庫和核心類使用以及原理分析


    ★ 不同於其他書,本書初學者更容易上手,老手可深入理解設計思想


    ★ 每一個知識點都以垂直化設計方式進行分析和展開,兼顧深度和廣度


    ★ 內容聚合度高,針對一個技術點縱向分析相關的所有內容並詳細說明


    ★ 對於很多技術點的分析,都是站在一個設計者(架構)的視角來展開


    ★ 大量的圖形設計簡化對復雜技術的理解,平均每章圖片數在30左右


    ★ 內容由淺到深遞進性分析,讀者能夠形成對並發編程的體繫化積累


    ★ 涵蓋大量實戰案例,可以讓讀者理解各類技術在實際應用中的使用


    ★ 作者經驗豐富,擁有13年Java開發及架構經驗,


    培養了近3W 學員,學員遍布一二線主流互聯網企業。

     
    內容簡介

    本書涵蓋Java並發編程體繫的核心庫和核心類使用及原理分析,具體包括線程、synchronized、volatile、J.U.C中的重入鎖和讀寫鎖、並發中的條件等待機制、J.U.C並發工具集、深度探索並發編程不得不知的工具、阻塞隊列、並發安全集合、線程池、異步編程特性等。書中針對每一個技術點,縱向分析相關的所有內容,並且對相關知識點進行了非常詳細的說明,同時站在架構實踐的角度來看待並發,通過大量實戰案例讓讀者理解各類技術在實際應用中的使用方法。 作者花了4年時間投入了大量精力對並發編程領域做了深入的研究,將自己13年Java開發及架構經驗融入了書中,對於各位讀者來說,這應該是一本非常值得閱讀的圖書。

    作者簡介

    譚鋒,網名Mic。


    咕泡學院聯合創始人,2017年開始創業,至今已有4年多時間。擁有13年Java開發及架構經驗,其中有4年授課經驗,培養了3萬多名學員,學員遍布一二線主流互聯網企業。 曾就職於中國電信、平安支付、挖財等公司擔任業務架構師,在平安支付主導了基於Dubbo的服務化架構設計和落地,在挖財推動了基於Spring Boot微服務化架構的改造。因此對於微服務架構、高並發架構有非常深入的研究,以及豐富的實踐經驗。


    目前擔任教學總監一職,負責微服務及高並發領域的課程研發和設計。

    目錄
    第1章Java線程的實踐及原理揭秘
    1.1如何理解繫統並發
    1.2繫統如何支撐高並發
    1.3線程的前世今生
    1.3.1大白話理解進程和線程
    1.3.2線程的核心價值
    1.3.3如何理解並發和並行
    1.4在Java中如何使用多線程
    1.4.1實現Runnable接口創建線程
    1.4.2繼承Thread類創建線程
    1.4.3實現Callable接口並創建帶返回值的線程
    1.5多線程如何應用到實際場景
    1.5.1ServerSocket
    1.5.2SocketThread

    第1章Java線程的實踐及原理揭秘


    1.1如何理解繫統並發


    1.2繫統如何支撐高並發


    1.3線程的前世今生


    1.3.1大白話理解進程和線程


    1.3.2線程的核心價值


    1.3.3如何理解並發和並行


    1.4在Java中如何使用多線程


    1.4.1實現Runnable接口創建線程


    1.4.2繼承Thread類創建線程


    1.4.3實現Callable接口並創建帶返回值的線程


    1.5多線程如何應用到實際場景


    1.5.1ServerSocket


    1.5.2SocketThread


    1.6多線程的基本原理


    1.7線程的運行狀態


    1.7.1線程運行狀態演示


    1.7.2線程運行狀態流轉圖


    1.8如何正確終止線程


    1.8.1關於安全中斷線程的思考


    1.8.2安全中斷線程之interrupt


    1.8.3如何中斷處於阻塞狀態下的線程


    1.8.4interrupt()方法的實現原理


    1.9理解上下文切換帶來的性能影響


    1.9.1上下文切換帶來的問題


    1.9.2什麼是上下文切換


    1.9.3如何減少上下文切換


    1.10揭秘守護線程


    1.10.1守護線程的應用場景


    1.10.2守護線程使用注意事項


    1.11快速定位並解決線程導致的生產問題


    1.11.1死鎖導致請求無法響應


    1.11.2CPU占用率很高,響應很慢


    1.12本章小結


    第2章深度揭秘synchronized實現原理


    2.1揭秘多線程環境下的原子性問題


    2.1.1深入分析原子性問題的本質


    2.1.2關於原子性問題的解決辦法


    2.2Java中的synchronized同步鎖


    2.2.1synchronized的使用方法


    2.2.2了解synchronized同步鎖的作用範圍


    2.3關於synchronized同步鎖的思考


    2.4synchronzied同步鎖標記存儲分析


    2.4.1揭秘Mark Word的存儲結構


    2.4.2圖解分析對像的實際存儲


    2.4.3通過ClassLayout查看對像內存布局


    2.4.4Hotspot虛擬機中對像存儲的源碼


    2.5synchronized的鎖類型


    2.5.1偏向鎖的原理分析


    2.5.2輕量級鎖的原理分析


    2.5.3重量級鎖的原理分析


    2.6關於CAS機制的實現原理分析


    2.6.1CAS在AtomicInteger中的應用


    2.6.2CAS實現自旋鎖


    2.6.3CAS在JVM中的實現原理分析


    2.7鎖升級的實現流程


    2.7.1偏向鎖的實現原理


    2.7.2輕量級鎖的實現原理


    2.7.3重量級鎖的實現原理


    2.8synchronized使用不當帶來的死鎖問題


    2.8.1死鎖的案例分析


    2.8.2死鎖產生的必要條件


    2.8.3如何解決死鎖問題


    2.9本章小結


    第3章volatile為什麼能解決可見性和有序性問題


    3.1關於線程的可見性問題分析


    3.1.1思考導致問題的原因


    3.1.2volatile關鍵字解決可見性問題


    3.2深度理解可見性問題的本質


    3.2.1如何化提升CPU利用率


    3.2.2詳述CPU高速緩存


    3.2.3CPU緩存一致性問題


    3.2.4總結可見性問題的本質


    3.3volatile如何解決可見性問題


    3.4指令重排序導致的可見性問題


    3.4.1什麼是指令重排序


    3.4.2as-if-serial語義


    3.5從CPU層面深度剖析指令重排序的本質


    3.5.1CPU優化—Store Buffers


    3.5.2CPU優化—Store Forwarding


    3.5.3CPU優化—Invalidate Queues


    3.6通過內存屏障解決內存繫統重排序問題


    3.6.1內存屏障詳解


    3.6.2通過內存屏障防止重排序


    3.6.3不同CPU的重排序規則


    3.6.4總結CPU層面的可見性問題


    3.7Java Memory Mode


    3.7.1從JVM和硬件層面理解Java Memory Mode


    3.7.2JVM提供的內存屏障指令


    3.8揭秘volatile實現原理


    3.9Happens-Before模型


    3.9.1程序順序規則


    3.9.2傳遞性規則


    3.9.3volatile變量規則


    3.9.4監視器鎖規則


    3.9.5 start規則


    3.9.6join規則


    3.10本章小結


    第4章深入淺出分析J.U.C中的重入鎖和讀寫鎖


    4.1J.U.C中與鎖相關的API


    4.1.1ReentrantLock的基本應用


    4.1.2ReentrantReadWriteLock的基本應用


    4.1.3StampedLock的基本應用


    4.2ReentrantLock的設計猜想


    4.2.1鎖的互斥,必須要競爭同一個共享變量


    4.2.2沒有競爭到鎖的線程,需要阻塞


    4.2.3需要一個容器存儲被阻塞的線程


    4.3ReentrantLock實現原理分析


    4.4AbstractQueuedSynchronizer


    4.5ReentrantLock源碼分析


    4.5.1ReentrantLock.lock()方法


    4.5.2AbstractQueuedSynchronizer.acquire()方法


    4.5.3 NonfairSync.tryAcquire()方法


    4.5.4ReentrantLock.nofairTryAcquire()方法


    4.5.5AbstractQueuedSynchronizer.addWaiter()方法


    4.5.6AQS.acquireQueued()方法


    4.6ReentrantLock釋放鎖源碼分析


    4.6.1ReentrantLock.tryRelease()方法


    4.6.2unparkSuccessor()方法


    4.6.3釋放鎖的線程繼續執行


    4.7分析ReentrantReadWriteLock類的原理


    4.7.1WriteLock鎖競爭原理


    4.7.2ReadLock鎖競爭原理


    4.7.3ReentrantReadWriteLock中的鎖降級


    4.8StampedLock的原理分析


    4.8.1核心內部類分析


    4.8.2StampedLock原理圖解


    4.8.3StampedLock鎖升級


    4.9本章小結


    第5章從線程通信來窺探並發中的條件等待機制


    5.1wait/notify


    5.1.1wait()/notify()方法使用實戰


    5.1.2圖解生產者/消費者


    5.1.3wait()/notify()方法的原理


    5.1.4wait()/notify()方法為什麼要加同步鎖


    5.2通過Thread.join獲取線程執行結果


    5.2.1Thread.join()方法的執行流程


    5.2.2Thread.join()方法的實現原理


    5.3J.U.C中的條件控制Condition


    5.3.1Condition的基本應用


    5.3.2基於Condition的手寫阻塞隊列


    5.4Condition的設計猜想


    5.5 Condition的源碼分析


    5.5.1Condition.await()方法


    5.5.2Condition.signal()方法


    5.5.3鎖競爭成功後的執行流程


    5.6本章小結


    第6章J.U.C並發工具集實戰及原理分析


    6.1CountDownLatch簡單介紹


    6.1.1CountDownLatch的基本使用


    6.1.2 CountDownLatch運行流程


    6.1.3如何落地到實際應用


    6.1.4CountDownLatch的其他用法


    6.2CountDownLatch底層原理


    6.2.1讓線程等待的await()方法到底做了什麼


    6.2.2深入分析countDown()方法源碼


    6.2.3線程被喚醒後的執行邏輯


    6.3Semaphore


    6.3.1Semaphore使用案例


    6.3.2Semaphore方法及場景說明


    6.4Semaphore原理分析


    6.4.1Semaphore令牌獲取過程分析


    6.4.2Semaphore令牌釋放過程分析


    6.5CyclicBarrier


    6.5.1CyclicBarrier的基本使用


    6.5.2基本原理分析


    6.6CyclicBarrier實現原理及源碼


    6.6.1await()方法


    6.6.2reset()方法


    6.7本章小結


    第7章深度探索並發編程不得不知的工具


    7.1初步認識ThreadLocal


    7.2ThreadLocal的應用場景分析


    7.3ThreadLocal解決SimpleDateFormat線程安全問題


    7.3.1 SimpleDateFormat線程安全問題的原理


    7.3.2ThreadLocal實現線程安全性


    7.4ThreadLocal實現原理分析


    7.4.1set()方法源碼分析


    7.4.2get()方法源碼分析


    7.4.3ThreadLocal內存洩漏


    7.5任務拆分與聚合Fork/Join


    7.5.1 Fork/Join的核心API說明


    7.5.2Fork/Join的基本使用


    7.6 Fork/Join的實現原理


    7.6.1 WorkQueue的原理


    7.6.2 工作竊取算法


    7.7Fork/Join的核心源碼分析


    7.7.1 任務提交過程詳解


    7.7.2喚醒或者創建工作線程


    7.7.3工作線程和工作隊列的綁定


    7.7.4ForkJoinWorkerThread運行過程


    7.8 使用Fork/Join解決實際問題


    7.8.1項目結構說明


    7.8.2ILoadDataProcessor


    7.8.3 AbstractLoadDataProcessor


    7.8.4業務服務類


    7.8.5Item聚合任務服務


    7.8.6 ComplexTradeTaskService


    7.8.7 測試代碼


    7.9本章小結


    第8章深度剖析阻塞隊列的設計原理及實現


    8.1什麼是阻塞隊列


    8.2Java中提供的阻塞隊列


    8.3阻塞隊列中提供的方法


    8.4阻塞隊列的使用


    8.4.1生產者/消費者模型代碼


    8.4.2圖解阻塞隊列實現原理


    8.5 阻塞隊列應用實戰


    8.5.1基於阻塞隊列的責任鏈源碼


    8.5.2阻塞隊列實戰場景總結


    8.6詳解J.U.C中阻塞隊列的使用


    8.6.1基於數組結構的阻塞隊列ArrayBlockingQueue


    8.6.2基於鏈表的阻塞隊列LinkedBlockingQueue


    8.6.3優先級阻塞隊列PriorityBlockingQueue


    8.6.4延遲阻塞隊列DelayQueue


    8.6.5無存儲結構的阻塞隊列SynchronousQueue


    8.6.6阻塞隊列結合體LinkedTransferQueue


    8.6.7雙向阻塞隊列LinkedBlockingDeque


    8.7阻塞隊列的實現原理


    8.7.1put()方法說明


    8.7.2take()方法說明


    8.8本章小結


    第9章深度解讀並發安全集合的原理及源碼


    9.1並發安全集合ConcurrentHashMap


    9.2正確理解ConcurrentHashMap的線程安全性


    9.2.1computeIfAbsent()方法詳解


    9.2.2computeIfPresent()方法詳解


    9.2.3compute()方法詳解


    9.2.4merge()方法詳解


    9.3ConcurrentHashMap的數據結構


    9.3.1ConcurrentHashMap數據存儲相關定義


    9.3.2Node數組初始化過程分析


    9.3.3單節點到鏈表的轉化過程分析


    9.3.4擴容還是轉化為紅黑樹


    9.4深度分析ConcurrentHashMap中的並發擴容機制


    9.4.1多線程並發擴容原理圖解


    9.4.2詳解ConcurrentHashMap中的數據遷移


    9.5分段鎖設計提素數量的性能


    9.5.1size計數的基本原理分析


    9.5.2addCount()方法詳解


    9.5.3fullAddCount()方法分析


    9.6詳解紅黑樹的實現原理


    9.6.1什麼是紅黑樹


    9.6.2紅黑樹的平衡規則


    9.6.3紅黑樹的平衡場景規則說明


    9.6.4紅黑素平衡圖解


    9.6.5 紅黑樹規則實戰解析


    9.6.6紅黑樹素的平衡規則


    9.7ConcurrentHashMap中紅黑樹的使用


    9.7.1 TreeBin的基本介紹


    9.7.2 鏈表轉化成紅黑樹


    9.7.3自平衡


    9.7.4ConcurrentHashMap總結


    9.8Java中其他並發安全集合


    9.8.1ConcurrentLinkedQueue


    9.8.2ConcurrentLinkedDeque


    9.8.3ConcurrentSkipListMap


    9.9深度分析數據結構:跳表


    9.9.1什麼是跳表


    9.9.2跳表的特性


    9.9.3跳表的基本操作


    9.10本章小結


    第10章站在架構的角度思考線程池的設計及原理


    10.1線程池的優勢


    10.2Java中提供的線程池


    10.2.1線程池的使用


    10.2.2ThreadPoolExecutor


    10.3Executor框架詳解


    10.4線程池的設計猜想


    10.4.1線程池的需求分析


    10.4.2生產者/消費者模型的設計


    10.4.3任務拒絕策略


    10.4.4非核心線程的回收


    10.4.5線程池設計總結


    10.5從實現原理了解線程池


    10.6線程池核心源碼剖析


    10.6.1線程狀態和數量存儲


    10.6.2線程池的狀態機及變更


    10.6.3從execute()方法分析線程池源碼


    10.7合理設置線程池參數


    10.7.1線程池大小的合理設置


    10.7.2動態設置線程池參數


    10.8線程池的監控


    10.8.1線程池監控的基本原理


    10.8.2在Spring Boot應用中發布線程池信息


    10.9本章小結


    第11章Java並發編程中的異步編程特性


    11.1了解Future/Callable


    11.2 Future/Callable的實現原理


    11.2.1FutureTask的核心屬性


    11.2.2FutureTask.run()


    11.2.3FutureTask.get()


    11.2.4finishCompletion()


    11.3Java 8新特性之CompletableFuture


    11.3.1CompletableFuture類關繫圖


    11.3.2CompletableFuture方法說明


    11.3.3主動獲取執行結果


    11.4CompletionStage方法及作用說明


    11.4.1方法分類概述


    11.4.2CompletionStage異常處理方法


    11.4.3方法類型總結


    11.5CompletableFuture綜合實戰


    11.5.1商品實體對像


    11.5.2模擬微服務請求實現類


    11.5.3Web請求


    11.6CompletableFuture實現原理分析


    11.6.1Completion說明


    11.6.2圖解Completion的棧結構


    11.7核心源碼分析


    11.7.1CompletableFuture靜態任務創建


    11.7.2 Completion Stack構建


    11.7.3簡述UniCompletion


    11.7.4任務執行流程


    11.7.5獲取任務執行結果


    11.8本章小結

    前言
    筆者在以前的工作中很少使用並發編程,大部分應用場景都用一個線程池去異步執行一個任務,對線程的理解和研究確實不多。

    2017年筆者創業的時候,從一名開發工程師轉成一名講師,當時的課程設計中包含並發編程這部分內容,因為在很多一二線互聯網公司的面試中,並發編程幾乎是必然會問的問題,而絕大部分學員對並發編程的理解也都停留在使用階段。

    為了講好並發編程這塊內容,筆者不得不深入研究和學習,以便更好地輸出高質量的內容。從那以後,筆者買了市面上幾乎所有有關並發編程的書,通過搜索引擎查找了幾乎所有的並發編程學習資料,驚訝地發現並發編程這個領域知識體繫非常龐大。同時,隨著對並發編程的深入研究,筆者發現裡面有大量的設計思想(比如分而治之)非常值得學習和研究,這也使得筆者迷戀上了並發程序設計。

    筆者在以前的工作中很少使用並發編程,大部分應用場景都用一個線程池去異步執行一個任務,對線程的理解和研究確實不多。


     


    2017年筆者創業的時候,從一名開發工程師轉成一名講師,當時的課程設計中包含並發編程這部分內容,因為在很多一二線互聯網公司的面試中,並發編程幾乎是必然會問的問題,而絕大部分學員對並發編程的理解也都停留在使用階段。


     


    為了講好並發編程這塊內容,筆者不得不深入研究和學習,以便更好地輸出高質量的內容。從那以後,筆者買了市面上幾乎所有有關並發編程的書,通過搜索引擎查找了幾乎所有的並發編程學習資料,驚訝地發現並發編程這個領域知識體繫非常龐大。同時,隨著對並發編程的深入研究,筆者發現裡面有大量的設計思想(比如分而治之)非常值得學習和研究,這也使得筆者迷戀上了並發程序設計。


     


    這4年來,筆者幾乎把核心組件的設計思想、源碼和原理全部細致地分析了一遍,收獲頗豐。筆者原本計劃在2019年時寫並發編程相關的書,把自己的收獲寫下來分享給讀者,但是當時感覺對並發編程的理解還不夠成熟,而且市面上有寫得非常不錯的書,筆者在課程中也強烈推薦過。


     


    今年決定寫這本書,一方面是因為筆者認為自己對並發編程的理解已經足夠輸出一些有價值的內容,另一方面是因為從學員中了解到,市面上的相關圖書要麼內容太松散,要麼太高深,初學者看起來費勁,有經驗的讀者學起來又總覺得少了些什麼。寫這本書應該是一個水到渠成的過程,筆者想彌補市面上這類書在編寫上的不足,同時想把這4年來對並發編程的理解和自己的並發程序設計經驗分享出來,讓各位讀者都能輕松地掌握晦澀難懂的並發編程知識。


     


    另外,筆者在寫書之前,自認為對並發編程的理解足夠深刻,但是在整理成書的時候,還是有很多收獲,特別是當把一些復雜的內容轉換為圖形的時候,不僅僅需要理解當前技術,還需要更進一步地理解相關的理論基礎和關聯技術的原理。


     


    本書涵蓋Java整個並發編程體繫的核心庫和核心類的使用及原理分析,有六大特色。


     


    特色一:每一個知識點都是以垂直化設計的方式進行分析和展開的,以synchronized關鍵字為例:


     


    l 首先從並發編程的原子性問題引入,了解為什麼需要synchronized及怎麼使用synchronized。


     


    l synchronized作為獨占鎖的實現必然存在互斥變量,所以深入講解了synchronized鎖的存儲原理。


     


    l 接著從鎖存儲延展到Mark Word對像頭,以及從對像頭繼續延展到緩存行及其填充機制。


     


    l 另外,從synchronized鎖的性能方面切入,了解鎖升級的實現及原理。


     


    在很多技術類圖書中都存在這樣一個問題,就是對一些技術的分析隻關注當前技術本身的廣度,對深度及關聯技術的說明不夠,導致很多讀者在閱讀的時候因為一個不明白的問題而影響對知識點的理解。


     


    特色二:內容聚合度較高。針對一個技術點,縱向分析這個技術點的所有相關內容,並且對相關知識點進行了非常詳細的說明。讀者在閱讀的時候,不會因為對部分擴展知識不理解而導致對技術理解得不夠深刻。


     


    特色三:站在架構實踐的角度來看待並發。本書對很多技術點的分析,都站在一個設計者的視角來展開。比如在線程池章節中,筆者會分析線程池的特性,以及如果自己來設計應該如何考慮和實現,這對開發者來說能夠開拓技術思維和提升技術高度。


     


    特色四:大量的圖形設計簡化了對復雜技術的理解,平均每個章節的圖片數量在30張左右,非常有利於讀者對技術點的理解。


     


    特色五:本書涵蓋的內容非常全面,並且由淺入深地進行遞進性的分析,讀者在學習的時候,能夠自然形成對並發編程的體繫化積累。


     


    特色六:考慮到很多讀者在實際工作中很少使用並發編程,本書涵蓋了大量實戰案例,可以幫助讀者理解各類技術在實際應用中的使用方法。


     


    筆者花費了4年時間,雖然投入了大量精力對並發編程進行了深入的研究,但在寫這本書的時候,仍然有不少收獲。在寫作過程中,筆者希望把自己對並發編程的理解和收獲全部寫進來。當然,筆者也確實盡力這麼做了,因此對各位讀者來說,這應該是一本非常值得閱讀的書。本書提供所有源碼,具體下載方式可以參考下方(或封底)的“讀者服務”。


     


    由於並發編程體繫涉及的技術面非常廣,書中難免會存在一些錯誤,懇請各位讀者在閱讀本書的時候,如果發現錯誤,及時反饋給出版社,筆者會及時糾正。


     

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部