图书介绍

JAVA并发编程 核心方法与框架PDF|Epub|txt|kindle电子书版本网盘下载

JAVA并发编程 核心方法与框架
  • 高洪岩著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111535219
  • 出版时间:2016
  • 标注页数:356页
  • 文件大小:33MB
  • 文件页数:370页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

JAVA并发编程 核心方法与框架PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 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

1.2.2 方法exchange()传递数据32

1.2.3 方法exchange(V x, long timeout, TimeUnit unit)与超时34

1.3 本章总结35

第2章 CountDownLatch和CyclicBarrier的使用36

2.1 CountDownLatch的使用36

2.1.1 初步使用37

2.1.2 裁判在等全部的运动员到来38

2.1.3 各就各位准备比赛39

2.1.4 完整的比赛流程41

2.1.5 方法await(long timeout, TimeUnit unit)44

2.1.6 方法getCount()的使用46

2.2 CyclicBarrier的使用46

2.2.1 初步使用48

2.2.2 验证屏障重置性及getNumberWaiting()方法的使用51

2.2.3 用CyclicBarrier类实现阶段跑步比赛52

2.2.4 方法isBroken()的使用55

2.2.5 方法await(long timeout, TimeUnit unit)超时出现异常的测试57

2.2.6 方法getNumberWaiting()和getParties()60

2.2.7 方法reset()62

2.3 本章总结64

第3章 Phaser的使用65

3.1 Phaser的使用66

3.2 类Phaser的arriveAndAwaitAdvance()方法测试166

3.3 类Phaser的arriveAndAwaitAdvance()方法测试268

3.4 类Phaser的arriveAndDeregister()方法测试69

3.5 类Phaser的getPhase()和onAdvance()方法测试70

3.6 类Phaser的getRegisteredParties()方法和register()测试74

3.7 类Phaser的bulkRegister()方法测试75

3.8 类Phaser的getAnivedParties()和getUnarrivedParties()方法测试75

3.9 类Phaser的arrive()方法测试177

3.10 类Phaser的arrive ()方法测试278

3.11 类Phaser的awaitAdvance(int phase)方法测试81

3.12 类Phaser的awaitAdvanceInterruptibly(int)方法测试183

3.13 类Phaser的awaitAdvanceInterruptibly(int)方法测试284

3.14 类Phaser的awaitAdvanceInterruptibly(int)方法测试386

3.15 类Phaser的awaitAdvanceInterruptibly(int,long,TimeUnit)方法测试487

3.16 类Phaser的forceTermination()和isTerminated()方法测试89

3.17 控制Phaser类的运行时机92

3.18 本章总结93

第4章 Executor与ThreadPoolExecutor的使用94

4.1 Executor接口介绍94

4.2 使用Executors工厂类创建线程池97

4.2.1 使用newCachedThreadPool()方法创建无界线程池98

4.2.2 验证newCachedThreadPool()创建为Thread池100

4.2.3 使用newCachedThreadPool (ThreadFactory)定制线程工厂102

4.2.4 使用newFixedThreadPool(int)方法创建有界线程池103

4.2.5 使用newFixedThreadPool(int, ThreadFactory)定制线程工厂105

4.2.6 使用newSingleThreadExecutor()方法创建单一线程池106

4.2.7 使用newSingleThreadExecutor(ThreadFactory)定制线程工厂107

4.3 ThreadPoolExecutor的使用107

4.3.1 构造方法的测试107

4.3.2 方法shutdown()和shutdownNow()与返回值119

4.3.3 方法isShutdown()129

4.3.4 方法isTerminating ()和isTerminated()129

4.3.5 方法awaitTermination(long timeout,TimeUnit unit)131

4.3.6 工厂ThreadFactory+execute()+UncaughtExceptionHandler处理异常134

4.3.7 方法set/getRejectedExecutionHandler()138

4.3.8 方法allowsCoreThreadTimeOut()/(boolean)140

4.3.9 方法prestartCoreThread()和prestartAllCoreThreads()142

4.3.10 方法getCompletedTaskCount()144

4.3.11 常见3种队列结合max值的因果效果145

4.3.12 线程池ThreadPoolExecutor的拒绝策略151

4.3.13 方法afterExecute()和beforeExecute()157

4.3.14 方法remove(Runnable)的使用159

4.3.15 多个get方法的测试162

4.3.16 线程池ThreadPoolExecutor与Runnable执行为乱序特性166

4.4 本章总结167

第5章 Future和Callable的使用168

5.1 Future和Callable的介绍168

5.2 方法get()结合ExecutorService中的submit(Callable<T>)的使用168

5.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用170

5.4 使用ExecutorService接口中的方法submit(Runnable, T result)170

5.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用173

5.6 方法get(long timeout, TimeUnit unit)的使用178

5.7 异常的处理179

5.8 自定义拒绝策略RejectedExecutionHandler接口的使用181

5.9 方法execute()与submit()的区别182

5.10 验证Future的缺点186

5.11 本章总结188

第6章 CompletionService的使用189

6.1 CompletionService介绍189

6.2 使用CompletionService解决Future的缺点190

6.3 使用take()方法193

6.4 使用poll()方法194

6.5 使用poll(long timeout, TimeUnit unit)方法195

6.6 类CompletionService与异常199

6.7 方法Future<V> submit(Runnable task, V result)的测试205

6.8 本章总结207

第7章 接口ExecutorService的方法使用208

7.1 在ThreadPoolExecutor中使用ExecutorService中的方法208

7.2 方法invokeAny(Collection tasks)的使用与interrupt209

7.3 方法invokeAny()与执行慢的任务异常212

7.4 方法invokeAny()与执行快的任务异常216

7.5 方法invokeAny()与全部异常220

7.6 方法invokeAny(CollectionTasks, timeout, timeUnit)超时的测试222

7.7 方法invokeAll(Collection tasks)全正确226

7.8 方法invokeAll(Collection tasks)快的正确慢的异常227

7.9 方法invokeAll(Collection tasks)快的异常慢的正确230

7.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢后快232

7.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快后慢234

7.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢236

7.13 本章总结238

第8章 计划任务ScheduledExecutorService的使用239

8.1 ScheduledExecutorService的使用240

8.2 ScheduledThreadPoolExecutor使用Callable延迟运行241

8.3 ScheduledThreadPoolExecutor使用Runnable延迟运行244

8.4 延迟运行并取得返回值245

8.5 使用scheduleAtFixedRate()方法实现周期性执行246

8.6 使用scheduleWithFixedDelay()方法实现周期性执行248

8.7 使用getQueue()与remove()方法250

8.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用253

8.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy()255

8.10 使用cancel(boolean)与setRemoveOnCancelPolicy()方法257

8.11 本章总结261

第9章 Fork-Join分治编程262

9.1 Fork-Join分治编程与类结构262

9.2 使用RecursiveAction让任务跑起来264

9.3 使用RecursiveAction分解任务265

9.4 使用RecursiveTask取得返回值与join()和get()方法的区别266

9.5 使用RecursiveTask执行多个任务并打印返回值270

9.6 使用RecursiveTask实现字符串累加272

9.7 使用Fork-Join实现求和:实验1273

9.8 使用Fork-Join实现求和:实验2275

9.9 类ForkJoinPool核心方法的实验276

9.9.1 方法public void execute(ForkJoinTask<?> task)的使用276

9.9.2 方法public void execute(Runnable task)的使用278

9.9.3 方法public void execute(ForkJoinTask<?> task)如何处理返回值278

9.9.4 方法public <T> ForkJoinTask<T> submit(ForkJoinTask<T> task)的使用279

9.9.5 方法public ForkJoinTask<?> submit(Runnable task)的使用280

9.9.6 方法public <T> ForkJoinTask<T> submit(Callable<T> task)的使用281

9.9.7 方法public <T> ForkJoinTask<T> submit(Runnable task, T result)的使用282

9.9.8 方法public <T> List<Future<T> invokeAll(Collection<? extends Callable<T>> tasks)的使用285

9.9.9 方法public void shutdown()的使用286

9.9.10 方法public List<Runnable> shutdownNow()的使用289

9.9.11 方法isTerminating()和isTerminated()的使用292

9.9.12 方法public boolean isShutdown()的使用295

9.9.13 方法public boolean awaitTermination(long timeout, TimeUnit unit)的使用297

9.9.14 方法public <T> T invoke(ForkJoinTask<T> task)的使用299

9.9.15 监视pool池的状态301

9.10 类ForkJoinTask对异常的处理308

9.11 本章总结309

第10章 并发集合框架310

10.1 集合框架结构简要310

10.1.1 接口Iterable310

10.1.2 接口Collection311

10.1.3 接口List311

10.1.4 接口Set312

10.1.5 接口Queue312

10.1.6 接口Deque312

10.2 非阻塞队列313

10.2.1 类ConcurrentHashMap的使用313

10.2.2 类ConcurrentSkipListMap的使用322

10.2.3 类ConcurrentSkipListSet的使用325

10.2.4 类ConcurrentLinkedQueue的使用328

10.2.5 类ConcurrentLinkedDeque的使用330

10.2.6 类CopyOnWriteArrayList的使用332

10.2.7 类CopyOnWriteArraySet的使用335

10.3 阻塞队列337

10.3.1 类ArrayBlockingQueue的使用337

10.3.2 类PriorityBlockingQueue的使用338

10.3.3 类LinkedBlockingQueue的使用340

10.3.4 类LinkedBlockingDeque的使用341

10.3.5 类SynchronousQueue的使用341

10.3.6 类DelayQueue的使用344

10.3.7 类LinkedTransferQueue的使用345

10.4 本章总结354

热门推荐