展开全部

主编推荐语

一键快速解决编程问题。

内容简介

本书主要介绍非常核心并常用的技术点,比如解决高并发环境下的线程间同步问题,可以使用Semaphore,CountDownLatch,CyclicBarrier以及Phaser类来解决,还要掌握线程池ThreadPoolExecutor的使用,还有线程池结合计划任务ScheduledExecutorService接口的使用,Future接口的使用,CompletionService异步任务的使用,ExecutorService工具接口的使用,Fork-Join分治编程的学习和Java技术中使用率比较高的并发集

目录

  • 版权信息
  • 前言
  • 第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的缺点
  • 5.11 本章总结
  • 第6章 CompletionService的使用
  • 6.1 CompletionService介绍
  • 6.2 使用CompletionService解决Future的缺点
  • 6.3 使用take()方法
  • 6.4 使用poll()方法
  • 6.5 使用poll(long timeout,TimeUnit unit)方法
  • 6.6 类CompletionService与异常
  • 6.7 方法Future<V>submit(Runnable task,V result)的测试
  • 6.8 本章总结
  • 第7章 接口ExecutorService的方法使用
  • 7.1 在ThreadPoolExecutor中使用ExecutorService中的方法
  • 7.2 方法invokeAny(Collection tasks)的使用与interrupt
  • 7.3 方法invokeAny()与执行慢的任务异常
  • 7.4 方法invokeAny()与执行快的任务异常
  • 7.5 方法invokeAny()与全部异常
  • 7.6 方法invokeAny(CollectionTasks,timeout,timeUnit)超时的测试
  • 7.7 方法invokeAll(Collection tasks)全正确
  • 7.8 方法invokeAll(Collection tasks)快的正确慢的异常
  • 7.9 方法invokeAll(Collection tasks)快的异常慢的正确
  • 7.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢后快
  • 7.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快后慢
  • 7.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢
  • 7.13 本章总结
  • 第8章 计划任务ScheduledExecutorService的使用
  • 8.1 ScheduledExecutorService的使用
  • 8.2 ScheduledThreadPoolExecutor使用Callable延迟运行
  • 8.3 ScheduledThreadPoolExecutor使用Runnable延迟运行
  • 8.4 延迟运行并取得返回值
  • 8.5 使用scheduleAtFixedRate()方法实现周期性执行
  • 8.6 使用scheduleWithFixedDelay()方法实现周期性执行
  • 8.7 使用getQueue()与remove()方法
  • 8.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用
  • 8.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy()
  • 8.10 使用cancel(boolean)与setRemoveOnCancelPolicy()方法
  • 8.11 本章总结
  • 第9章 Fork-Join分治编程
  • 9.1 Fork-Join分治编程与类结构
  • 9.2 使用RecursiveAction让任务跑起来
  • 9.3 使用RecursiveAction分解任务
  • 9.4 使用RecursiveTask取得返回值与join()和get()方法的区别
  • 9.5 使用RecursiveTask执行多个任务并打印返回值
  • 9.6 使用RecursiveTask实现字符串累加
  • 9.7 使用Fork-Join实现求和:实验1
  • 9.8 使用Fork-Join实现求和:实验2
  • 9.9 类ForkJoinPool核心方法的实验
  • 9.9.1 方法public void execute(ForkJoinTask<?>task)的使用
  • 9.9.2 方法public void execute(Runnable task)的使用
  • 9.9.3 方法public void execute(ForkJoinTask<?>task)如何处理返回值
  • 9.9.4 方法public<T>ForkJoinTask<T>submit(ForkJoinTask<T>task)的使用
  • 9.9.5 方法public ForkJoinTask<?>submit(Runnable task)的使用
  • 9.9.6 方法public<T>ForkJoinTask<T>submit(Callable<T>task)的使用
  • 9.9.7 方法public<T>ForkJoinTask<T>submit(Runnable task,T result)的使用
  • 9.9.8 方法public<T>List<Future<T>>invokeAll(Collection<?extends Callable<T>>tasks)的使用
  • 9.9.9 方法public void shutdown()的使用
  • 9.9.10 方法public List<Runnable>shutdownNow()的使用
  • 9.9.11 方法isTerminating()和isTerminated()的使用
  • 9.9.12 方法public boolean isShutdown()的使用
  • 9.9.13 方法public boolean awaitTermination(long timeout,TimeUnit unit)的使用
  • 9.9.14 方法public<T>T invoke(ForkJoinTask<T>task)的使用
  • 9.9.15 监视pool池的状态
  • 9.10 类ForkJoinTask对异常的处理
  • 9.11 本章总结
  • 第10章 并发集合框架
  • 10.1 集合框架结构简要
  • 10.1.1 接口Iterable
  • 10.1.2 接口Collection
  • 10.1.3 接口List
  • 10.1.4 接口Set
  • 10.1.5 接口Queue
  • 10.1.6 接口Deque
  • 10.2 非阻塞队列
  • 10.2.1 类ConcurrentHashMap的使用
  • 10.2.2 类ConcurrentSkipListMap的使用
  • 10.2.3 类ConcurrentSkipListSet的使用
  • 10.2.4 类ConcurrentLinkedQueue的使用
  • 10.2.5 类ConcurrentLinkedDeque的使用
  • 10.2.6 类CopyOnWriteArrayList的使用
  • 10.2.7 类CopyOnWriteArraySet的使用
  • 10.3 阻塞队列
  • 10.3.1 类ArrayBlockingQueue的使用
  • 10.3.2 类PriorityBlockingQueue的使用
  • 10.3.3 类LinkedBlockingQueue的使用
  • 10.3.4 类LinkedBlockingDeque的使用
  • 10.3.5 类SynchronousQueue的使用
  • 10.3.6 类DelayQueue的使用
  • 10.3.7 类LinkedTransferQueue的使用
  • 10.4 本章总结
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。