●前言
●章 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......
內容簡介
本書主要介紹很好核心並常用的技術點,比如解決高並發環境下的線程間同步問題,可以使用Semaphore,CountDownLatch,CyclicBarrier以及Phaser類來解決,還要掌握線程池ThreadPoolExecutor的使用,還有線程池結合計劃任務ScheduledExecutorService接口的使用,Future接口的使用,CompletionService異步任務的使用,ExecutorService工具接口的使用,Fork-Join分治編程的學習和Java技術中使用率比較高的並發集合框架。
Preface?前 言為什麼要寫這本書早在幾年前筆者就曾想過整理一份與Java並發包有關的稿件。因為市面上所有的Java書籍都是以1章或2章的篇幅介紹Java並發包技術,這就導致對Java並發包的講解並不是非常詳盡,包含的知識量遠遠不夠,並沒有完整覆蓋Java並發包技術的知識點。但可惜,苦於當時的時間及精力有限,一直沒有如願。
也許是注定的安排,筆者現所在單位是集技術與教育為一體的軟件類企業,學員在學習完JavaSE/JavaEE之後想探索更深入的技術,比如大數據、分布式、高並發類的專題,就會立即遇到與Java並發包中API相關的問題。為了帶領學員在技術層面上有更高的追求,所以我將Java並發包的技術點以教案的方式進行整理,在課堂上與同學們一起進行學習、交流,同學們反響非常強烈。至此,若干......
"