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

商品搜索

 类 别:
 关键字:
    

商品分类

  • 新类目

     管理
     投资理财
     经济
     社会科学
  • 實戰Java高並發程序設計(第2版)(博文視點出品)
    該商品所屬分類:圖書 -> 電子工業出版社
    【市場價】
    761-1104
    【優惠價】
    476-690
    【作者】 葛一鳴 
    【所屬類別】 電子工業出版社 
    【出版社】電子工業出版社 
    【ISBN】9787121350030
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    出版社:電子工業出版社
    ISBN:9787121350030
    版次:2

    商品編碼:12458866
    品牌:電子工業出版社
    包裝:平裝

    開本:16開
    出版時間:2018-10-01
    用紙:膠版紙

    頁數:416
    字數:525000
    正文語種:中文

    作者:葛一鳴

        
        
    "

    產品特色

    編輯推薦

    適讀人群 :並行程序設計經典圖書升級,涵蓋基於Java的並行程序設計基礎、思路、方法和實戰,內容豐富,實例典型,實用性強,手把手教你開發高效的Java並行程序,程序員提升技術走向高級工程師必備

    並序行程設計經典圖書升級,涵蓋基於Java的並行程序設計基礎、思路、方法和實戰,內容豐富,實例典型,實用性強,手把手教你開發高效的Java並行程序,程序員提升技術走向高級工程師必備。

    結構清晰。總體上循序漸進,逐步提升。每一章都各自有鮮明的側重點,有利於讀者快速抓住重點。

    理論結合實戰。本書注重實戰,書中重要的知識點都安排了代碼實例,幫助讀者理解。同時也不忘記對繫統的內部實現原理進行深度剖析。

    通俗易懂。盡量避免采用過於理論的描述方式,簡單的白話文風格貫穿全書,配圖基本上為手工繪制,降低了理解難度,並盡量做到讀者在閱讀過程中少盲點、無盲點。

    讀者評價:脈絡清晰,查閱方便,講解到位,通俗易懂,多線程和高並發專業必備。

    ★專業必備、查閱方便、很實用、幫助很大、脈絡清晰,是一本好書,受益非淺,值得推薦。
    ★淺顯易懂,描述清晰簡潔,不累贅,不拖沓。對於初學者和有經驗的同學再回顧都很有幫助。
    ★對多線程高並發講解的非常到位,推薦一下,葛老師的Java程序性能優化也很不錯!棒棒噠
    ★比起《Java並發編程藝術》,這本書介紹的JdkAPI多些。那些API都是大師寫出來的,能夠學到很多經驗。
    ★這本書學著不錯,挺實用的,一直以來要找的並發,就是它了,很好
    ★經典書籍,值得多讀、細讀、認真讀,相當好,通俗易懂,推薦購買
    ★很好的關於Java高並發的書,基礎性、繫統性很好,對於新的Java8的相關描述不錯,很多示例,簡單易懂
    ★書質量不錯,大部分知識點都有,內容翔實又精煉,值得好好學習!高並發編程,提高程序效率
    ★從模式原理的角度介紹了如何設計並發程序,以及為何這麼設計真心不錯,用心讀會有很多收獲。入門佳品。符合目前的主流。
    …………


    內容簡介

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

    作者簡介

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

    精彩書評

    毫無疑問,Java是目前服務端程序常用的編程語言之一。大量的服務端應用基於這個看似簡單的開發語言,然而容易入門並不代表容易精通。其中高並發程序設計就是一個重點,也是一個難點。對於Java,如果你已入門並迫切希望自己可以更上一層樓,那麼本書將成為你的良師益友!全書內容深入且通俗易懂,示例豐富且注重循序漸進,可以極大地幫助你快速掃清進階路上的主要障礙,助你成為一個知其然並知其所以然的高級Java工程師。

    ——Dataguru創始人、首席科學家黃志洪


    目錄

    第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.1Amdahl定律 14
    1.4.2Gustafson定律 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.3volatile與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.4ReadWriteLock讀寫鎖 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.10Guava中對線程池的擴展 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.2Hello JMH 147
    3.4.3JMH的基本概念和配置 150
    3.4.4理解JMH中的Mode 151
    3.4.5理解JMH中的State 153
    3.4.6有關性能的一些思考 154
    3.4.7CopyOnWriteArrayList類與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.2Java虛擬機對鎖優化所做的努力 169
    4.2.1鎖偏向 169
    4.2.2輕量級鎖 169
    4.2.3自旋鎖 170
    4.2.4鎖消除 170
    4.3人手一支筆:ThreadLocal 171
    4.3.1ThreadLocal的簡單使用 171
    4.3.2ThreadLocal的實現原理 173
    4.3.3對性能有何幫助 179
    4.4無鎖 182
    4.4.1與眾不同的並發策略:比較交換 182
    4.4.2無鎖的線程安全整數:AtomicInteger 183
    4.4.3Java中的指針: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.4CPU Cache的優化:解決偽共享問題 226
    5.5Future模式 230
    5.5.1Future模式的主要角色 232
    5.5.2Future模式的簡單實現 233
    5.5.3JDK中的Future模式 236
    5.5.4Guava對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.1AIO EchoServer的實現 275
    5.11.2AIO Echo客戶端的實現 277
    第6章Java 8/9/10與並發 281
    6.1Java 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.1FunctionalInterface注釋 285
    6.2.2接口默認方法 286
    6.2.3lambda表達式 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.4CompletableFuture中的異常處理 303
    6.5.5組合多個CompletableFuture 304
    6.5.6支持timeout的 CompletableFuture 306
    6.6讀寫鎖的改進:StampedLock 306
    6.6.1StampedLock使用示例 307
    6.6.2StampedLock的小陷阱 308
    6.6.3有關StampedLock的實現思想 310
    6.7原子類的增強 313
    6.7.1更快的原子類:LongAdder 314
    6.7.2LongAdder功能的增強版:LongAccumulator 320
    6.8ConcurrentHashMap的增強 321
    6.8.1foreach操作 321
    6.8.2reduce操作 321
    6.8.3條件插入 322
    6.8.4search操作 323
    6.8.5其他新方法 324
    6.9發布和訂閱模式 324
    6.9.1 簡單的發布訂閱例子 326
    6.9.2 數據處理鏈 328
    第7章使用Akka構建高並發程序 331
    7.1新並發模型:Actor 332
    7.2Akka之Hello World 332
    7.3有關消息投遞的一些說明 336
    7.4Actor的生命周期 337
    7.5監督策略 341
    7.6選擇Actor 346
    7.7消息收件箱(Inbox) 346
    7.8消息路由 348
    7.9Actor的內置狀態轉換 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.1Jetty簡介與架構 385
    9.2Jetty服務器初始化 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.1Accept成功 399
    9.4.2請求處理 401

    查看全部↓

    前言/序言

    關於Java與並行

    由於單核CPU的主頻逐步逼近極限,多核CPU架構成了一種必然的技術趨勢,因此多線程並行程序便顯得越來越重要。並行計算的一個重要應用場景就是服務端編程。目前服務端CPU的核心數已經輕松超越10個,而Java顯然已經成為當下最流行的服務端編程語言,且已經更新到JDK 10,因此熟悉和了解基於Java的並行程序開發有著重要的實用價值。

    本書的體繫結構

    本書立足於實際開發,又不缺乏理論介紹,力求通俗易懂、循序漸進。本書共分為9章。

    第1章主要介紹了並行計算中相關的一些基本概念,樹立讀者對並行計算的基本認識,介紹了兩個重要的並行性能評估定律,以及Java內存模型JMM。

    第2章介紹了Java並行程序開發的基礎,包括Java中Thread的基本使用方法等,也詳細介紹了並行程序容易引發的一些錯誤,以及容易出現的誤用。

    第3章介紹了JDK內部對並行程序開發的支持,主要介紹juc(java.util.concurrent)中一些工具的使用方法、各自的特點及它們的內部實現原理。

    第4章介紹了在開發過程中可以進行的對鎖的優化,也進一步簡要描述了Java虛擬機層面對並行程序的優化支持。此外,還花費一定的篇幅介紹了無鎖的計算。

    第5章介紹了並行程序設計中常見的一些設計模式,以及一些典型的並行算法和使用方法,其中包括重要的Java NIO和AIO的介紹。

    第6章介紹了Java 8/9/10為並行計算做的改進,包括並行流、CompletableFuture、StampedLock、LongAdder,以及發布和訂閱模式等。

    第7章主要介紹了高並發框架Akka的基本使用方法,並使用Akka框架實現了一個簡單的粒子群算法,模擬超高並發的場景。

    第8章介紹了使用Eclipse進行多線程調試的方法,並演示了通過Eclipse進行多線程調試重現ArrayList的線程不安全問題。

    第9章介紹了Jetty,並分析了Jetty的一些關鍵代碼,主要展示它在高並發優化中所做的一些努力,也為讀者學會並深入理解高並發帶來一些提示和思考。

    本書特色

    本書的主要特色如下。

    1. 結構清晰。本書一共9章,總體上循序漸進,逐步提升。每一章都有鮮明的側重點,有利於讀者快速抓住重點。

    2. 理論結合實戰。本書注重實戰,書中重要的知識點都安排了代碼實例,幫助讀者理解。同時也不忘對繫統的內部實現原理進行深度剖析。

    3. 通俗易懂。本書盡量避免采用過於理論化的描述方式,簡單的白話文風格貫穿全書,配圖基本上為手工繪制,降低了理解難度,並盡量做到讀者在閱讀過程中少盲點、無盲點。

    適合閱讀人群

    雖然本書力求通俗,但是要通讀本書並取得良好的學習效果,要求讀者具備基本的Java知識或者一定的編程經驗。因此,本書適合以下讀者。

    ? 擁有一定開發經驗的Java平臺開發人員(Java、Scala、JRuby等)。

    ? 軟件設計師、架構師。

    ? 繫統調優人員。

    ? 有一定的Java編程基礎並希望進一步加深對並行程序的理解的研發人員。

    本書的約定和更新

    本書在敘述過程中,有如下約定。

    ? 本書所述的JDK 1.5、JDK 1.6、JDK 1.7、JDK 1.8、JDK 1.9、JDK 1.10分別等同於JDK 5、JDK 6、JDK 7、JDK 8、JDK 9、JDK 10。

    ? 如無特殊說明,本書的程序、示例均在JDK 1.8以上環境中運行。


    相較前一版,本書的主要更新如下。

    1. 第3章增加的內容如下。

    ? 使用JMH進行性能測試。

    ? CopyOnWriteArrayList ConcurrentLinkedQueue性能測試。

    ? 使用Guava的RateLimiter限流。

    ? Guava中對線程池的擴展。

    ? 介紹JDK中ArrayBlockingQueue的算法。


    2. 第5章增加的內容如下。

    ? Guava對Future模式的支持。


    3. 第6章增加的內容如下。

    ? 支持timeout的CompletableFuture。

    ? ConcurrentHashMap在新版本JDK中的增強。

    ? 發布和訂閱模式。


    4. 增加第9章,主要介紹Jetty多線程優化。從細節入手分析Jetty在多線程並發方面做出的努力和優化,對實踐應用具有極強的參考價值。

    聯繫作者

    本書的寫作過程遠比我想像得艱辛,為了讓全書能夠更清楚、更準確地表達和論述,我經歷了很多個不眠之夜,即使現在回想起來,我也忍不住會打個寒戰。由於寫作水平的限制,書中難免會有不妥之處,望讀者諒解。

    為此,如果讀者有任何疑問或者建議,非常歡迎大家加入QQ群254693571,一起探討學習中的困難、分享學習經驗,我期待與大家一起交流、共同進步。同時,大家也可以關注我的博客http://www.uucode.net/。歡迎大家去博文視點社區下載本書推薦的參考文獻。

    感謝

    本書能夠面世,是因為得到了眾人的支持。首先,要感謝我的妻子,她始終不辭辛勞、毫無怨言地對我照顧有加,纔讓我得以騰出大量時間安心工作。其次,要感謝所有編輯為我一次又一次地審稿改錯,批評指正,促進本書逐步完善。最後,感謝我的母親三十年如一日對我的體貼和關心。

    葛一鳴





    查看全部↓



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