更新时间:2019-01-03 02:35:02
封面
版权信息
前言
第1章 Semaphore和Exchanger的使用
1.1 Semaphore的使用
1.1.1 类Semaphore的同步性
1.1.2 类Semaphore构造方法permits参数作用
1.1.3 方法acquire(int permits)参数作用及动态添加permits许可数量
1.1.4 方法acquireUninterruptibly()的使用
1.1.5 方法availablePermits()和drainPermits()
1.1.6 方法getQueueLength()和hasQueuedThreads()
1.1.7 公平与非公平信号量的测试
1.1.8 方法tryAcquire()的使用
1.1.9 方法tryAcquire(int permits)的使用
1.1.10 方法tryAcquire(long timeout TimeUnit unit)的使用
1.1.11 方法tryAcquire(int permits long timeout TimeUnit unit)的使用
1.1.12 多进路-多处理-多出路实验
1.1.13 多进路-单处理-多出路实验
1.1.14 使用Semaphore创建字符串池
1.1.15 使用Semaphore实现多生产者/多消费者模式
1.2 Exchanger的使用
1.2.1 方法exchange()阻塞的特性
1.2.2 方法exchange()传递数据
1.2.3 方法exchange(V x long timeout TimeUnit unit)与超时
1.3 本章总结
第2章 CountDownLatch和CyclicBarrier的使用
2.1 CountDownLatch的使用
2.1.1 初步使用
2.1.2 裁判在等全部的运动员到来
2.1.3 各就各位准备比赛
2.1.4 完整的比赛流程
2.1.5 方法await(long timeout TimeUnit unit)
2.1.6 方法getCount()的使用
2.2 CyclicBarrier的使用
2.2.1 初步使用
2.2.2 验证屏障重置性及getNumberWaiting()方法的使用
2.2.3 用CyclicBarrier类实现阶段跑步比赛
2.2.4 方法isBroken()的使用
2.2.5 方法await(long timeout TimeUnit unit)超时出现异常的测试
2.2.6 方法getNumberWaiting()和getParties()
2.2.7 方法reset()
2.3 本章总结
第3章 Phaser的使用
3.1 Phaser的使用
3.2 类Phaser的arriveAndAwaitAdvance()方法测试1
3.3 类Phaser的arriveAndAwaitAdvance()方法测试2
3.4 类Phaser的arriveAndDeregister()方法测试
3.5 类Phaser的getPhase()和onAdvance()方法测试
3.6 类Phaser的getRegisteredParties()方法和register()测试
3.7 类Phaser的bulkRegister()方法测试
3.8 类Phaser的getArrivedParties()和getUnarrivedParties()方法测试
3.9 类Phaser的arrive()方法测试1
3.10 类Phaser的arrive ()方法测试2
3.11 类Phaser的awaitAdvance(int phase)方法测试
3.12 类Phaser的awaitAdvanceInterruptibly(int)方法测试1
3.13 类Phaser的awaitAdvanceInterruptibly(int)方法测试2
3.14 类Phaser的awaitAdvanceInterruptibly(int)方法测试3
3.15 类Phaser的awaitAdvanceInterruptibly(int long TimeUnit)方法测试4
3.16 类Phaser的forceTermination()和isTerminated()方法测试
3.17 控制Phaser类的运行时机
3.18 本章总结
第4章 Executor与ThreadPoolExecutor的使用
4.1 Executor接口介绍
4.2 使用Executors工厂类创建线程池
4.2.1 使用newCachedThreadPool()方法创建无界线程池
4.2.2 验证newCachedThreadPool()创建为Thread池
4.2.3 使用newCachedThreadPool (ThreadFactory)定制线程工厂
4.2.4 使用newFixedThreadPool(int)方法创建有界线程池
4.2.5 使用newFixedThreadPool(int ThreadFactory)定制线程工厂
4.2.6 使用newSingleThreadExecutor()方法创建单一线程池
4.2.7 使用newSingleThreadExecutor(ThreadFactory)定制线程工厂
4.3 ThreadPoolExecutor的使用
4.3.1 构造方法的测试
4.3.2 方法shutdown()和shutdownNow()与返回值
4.3.3 方法isShutdown()
4.3.4 方法isTerminating ()和isTerminated ()
4.3.5 方法awaitTermination(long timeout TimeUnit unit)
4.3.6 工厂ThreadFactory+execute()+UncaughtExceptionHandler处理异常
4.3.7 方法set/getRejectedExecutionHandler()
4.3.8 方法allowsCoreThreadTimeOut()/(boolean)
4.3.9 方法prestartCoreThread()和prestartAllCoreThreads()
4.3.10 方法getCompletedTaskCount()
4.3.11 常见3种队列结合max值的因果效果
4.3.12 线程池ThreadPoolExecutor的拒绝策略
4.3.13 方法afterExecute()和beforeExecute()
4.3.14 方法remove(Runnable)的使用
4.3.15 多个get方法的测试
4.3.16 线程池ThreadPoolExecutor与Runnable执行为乱序特性
4.4 本章总结
第5章 Future和Callable的使用
5.1 Future和Callable的介绍
5.2 方法get()结合ExecutorService中的submit(Callable<T>)的使用
5.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用
5.4 使用ExecutorService接口中的方法submit(Runnable T result)
5.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用
5.6 方法get(long timeout TimeUnit unit)的使用
5.7 异常的处理
5.8 自定义拒绝策略RejectedExecutionHandler接口的使用
5.9 方法execute()与submit()的区别
5.10 验证Future的缺点