|
|
|
|
组合商品(把光标放在图片上可查看产品名称) |
|
|
|
|
商品简介 |
|
编辑推荐
目 录?Contents前言第1章 Semaphore和Exchanger的使用 11.1 Semaphore的使用 21.1.1 类Semaphore的同步性 21.1.2 类Semaphore构造方法permits参数作用 41.1.3 方法acquire(int permits)参数作用及动态添加permits许可数量 51.1.4 方法acquireUninterruptibly()的使用 81.1.5 方法availablePermits()和drainPermits() 101.1.6 方法getQueueLength()和hasQueuedThreads() 121.1.7 公平与非公平信号量的测试 131.1.8 方法tryAcquire()的使用 151.1.9 方法tryAcquire(int permits)的使用 171.1.10 方法tryAcquire(long timeout, TimeUnit unit)的使用 171.1.11 方法tryAcquire(int permits, long timeout, TimeUnit unit)的使用 191.1.12 多进路-多处理-多出路实验 201.1.13 多进路-单处理-多出路实验 211.1.14 使用Semaphore创建字符串池 231.1.15 使用Semaphore实现多生产者/多消费者模式 251.2 Exchanger的使用 311.2.1 方法exchange()阻塞的特性 311.2.2 方法exchange()传递数据 321.2.3 方法exchange(V x, long timeout, TimeUnit unit)与超时 341.3 本章总结 35第2章 CountDownLatch和CyclicBarrier的使用 362.1 CountDownLatch的使用 362.1.1 初步使用 372.1.2 裁判在等全部的运动员到来 382.1.3 各就各位准备比赛 392.1.4 完整的比赛流程 412.1.5 方法await(long timeout, TimeUnit unit) 442.1.6 方法getCount()的使用 462.2 CyclicBarrier的使用 462.2.1 初步使用 482.2.2 验证屏障重置性及getNumberWaiting()方法的使用 512.2.3 用CyclicBarrier类实现阶段跑步比赛 522.2.4 方法isBroken()的使用 552.2.5 方法await(long timeout, TimeUnit unit)超时出现异常的测试 572.2.6 方法getNumberWaiting()和getParties() 602.2.7 方法reset() 622.3 本章总结 64第3章 Phaser的使用 653.1 Phaser的使用 663.2 类Phaser的arriveAndAwaitAdvance()方法测试1 663.3 类Phaser的arriveAndAwaitAdvance()方法测试2 683.4 类Phaser的arriveAndDeregister()方法测试 693.5 类Phaser的getPhase()和onAdvance()方法测试 703.6 类Phaser的getRegisteredParties()方法和register()测试 743.7 类Phaser的bulkRegister()方法测试 753.8 类Phaser的getArrivedParties()和getUnarrivedParties()方法测试 753.9 类Phaser的arrive()方法测试1 773.10 类Phaser的arrive ()方法测试2 783.11 类Phaser的awaitAdvance(int phase)方法测试 813.12 类Phaser的awaitAdvanceInterruptibly(int)方法测试1 833.13 类Phaser的awaitAdvanceInterruptibly(int)方法测试2 843.14 类Phaser的awaitAdvanceInterruptibly(int)方法测试3 863.15 类Phaser的awaitAdvanceInterruptibly(int,long,TimeUnit)方法测试4 873.16 类Phaser的forceTermination()和isTerminated()方法测试 893.17 控制Phaser类的运行时机 923.18 本章总结 93第4章 Executor与ThreadPoolExecutor的使用 944.1 Executor接口介绍 944.2 使用Executors工厂类创建线程池 974.2.1 使用newCachedThreadPool()方法创建无界线程池 984.2.2 验证newCachedThreadPool()创建为Thread池 1004.2.3 使用newCachedThreadPool (ThreadFactory)定制线程工厂 1024.2.4 使用newFixedThreadPool(int)方法创建有界线程池 1034.2.5 使用newFixedThreadPool(int, ThreadFactory)定制线程工厂 1054.2.6 使用newSingleThreadExecutor()方法创建单一线程池 1064.2.7 使用newSingleThreadExecutor(ThreadFactory)定制线程工厂 1074.3 ThreadPoolExecutor的使用 1074.3.1 构造方法的测试 1074.3.2 方法shutdown()和shutdownNow()与返回值 1194.3.3 方法isShutdown() 1294.3.4 方法isTerminating ()和isTerminated () 1294.3.5 方法awaitTermination(long timeout,TimeUnit unit) 1314.3.6 工厂ThreadFactory execute() UncaughtExceptionHandler处理异常 1344.3.7 方法set/getRejectedExecutionHandler() 1384.3.8 方法allowsCoreThreadTimeOut()/(boolean) 1404.3.9 方法prestartCoreThread()和prestartAllCoreThreads() 1424.3.10 方法getCompletedTaskCount() 1444.3.11 常见3种队列结合max值的因果效果 1454.3.12 线程池ThreadPoolExecutor的拒绝策略 1514.3.13 方法afterExecute()和beforeExecute() 1574.3.14 方法remove(Runnable)的使用 1594.3.15 多个get方法的测试 1624.3.16 线程池ThreadPoolExecutor与Runnable执行为乱序特性 1664.4 本章总结 167第5章 Future和Callable的使用 1685.1 Future和Callable的介绍 1685.2 方法get()结合ExecutorService中的submit(Callable)的使用 1685.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用 1705.4 使用ExecutorService接口中的方法submit(Runnable, T result) 1705.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用 1735.6 方法get(long timeout, TimeUnit unit)的使用 1785.7 异常的处理 1795.8 自定义拒绝策略RejectedExecutionHandler接口的使用 1815.9 方法execute()与submit()的区别 1825.10 验证Future的缺点 1865.11 本章总结 188第6章 CompletionService的使用 1896.1 CompletionService介绍 1896.2 使用CompletionService解决Future的缺点 1906.3 使用take()方法 1936.4 使用poll()方法 1946.5 使用poll(long timeout, TimeUnit unit)方法 1956.6 类CompletionService与异常 1996.7 方法Future submit(Runnable task, V result)的测试 2056.8 本章总结 207第7章 接口ExecutorService的方法使用 2087.1 在ThreadPoolExecutor中使用ExecutorService中的方法 2087.2 方法invokeAny(Collection tasks)的使用与interrupt 2097.3 方法invokeAny()与执行慢的任务异常 2127.4 方法invokeAny()与执行快的任务异常 2167.5 方法invokeAny()与全部异常 2207.6 方法invokeAny(CollectionTasks, timeout, timeUnit)超时的测试 2227.7 方法invokeAll(Collection tasks)全正确 2267.8 方法invokeAll(Collection tasks)快的正确慢的异常 2277.9 方法invokeAll(Collection tasks)快的异常慢的正确 2307.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢后快 2327.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快后慢 2347.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢 2367.13 本章总结 238第8章 计划任务ScheduledExecutorService的使用 2398.1 ScheduledExecutorService的使用 2408.2 ScheduledThreadPoolExecutor使用Callable延迟运行 2418.3 ScheduledThreadPoolExecutor使用Runnable延迟运行 2448.4 延迟运行并取得返回值 2458.5 使用scheduleAtFixedRate()方法实现周期性执行 2468.6 使用scheduleWithFixedDelay()方法实现周期性执行 2488.7 使用getQueue()与remove()方法 2508.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用 2538.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy() 2558.10 使用cancel(boolean)与setRemoveOnCancelPolicy()方法 2578.11 本章总结 261第9章 Fork-Join分治编程 2629.1 Fork-Join分治编程与类结构 2629.2 使用RecursiveAction让任务跑起来 2649.3 使用RecursiveAction分解任务 2659.4 使用RecursiveTask取得返回值与join()和get()方法的区别 2669.5 使用RecursiveTask执行多个任务并打印返回值 2709.6 使用RecursiveTask实现字符串累加 2729.7 使用Fork-Join实现求和:实验1 2739.8 使用Fork-Join实现求和:实验2 2759.9 类ForkJoinPool核心方法的实验 2769.9.1 方法public void execute(ForkJoinTask task)的使用 2769.9.2 方法public void execute(Runnable task)的使用 2789.9.3 方法public void execute(ForkJoinTask task)如何处理返回值 2789.9.4 方法public ForkJoinTask submit(ForkJoinTask task)的使用 2799.9.5 方法public ForkJoinTask submit(Runnable task)的使用 2809.9.6 方法public ForkJoinTask submit(Callable task)的使用 2819.9.7 方法public ForkJoinTask submit(Runnable task, T result)的使用 2829.9.8 方法public List> invokeAll(Collection> tasks)的使用 2859.9.9 方法public void shutdown()的使用 2869.9.10 方法public List shutdownNow()的使用 2899.9.11 方法isTerminating()和isTerminated()的使用 2929.9.12 方法public boolean isShutdown()的使用 2959.9.13 方法public boolean awaitTermination(long timeout, TimeUnit unit)的使用 2979.9.14 方法public T invoke(ForkJoinTask task)的使用 2999.9.15 监视pool池的状态 3019.10 类ForkJoinTask对异常的处理 3089.11 本章总结 309第10章 并发集合框架 31010.1 集合框架结构简要 31010.1.1 接口Iterable 31010.1.2 接口Collection 31110.1.3 接口List 31110.1.4 接口Set 31210.1.5 接口Queue 31210.1.6 接口Deque 31210.2 非阻塞队列 31310.2.1 类ConcurrentHashMap的使用 31310.2.2 类ConcurrentSkipListMap的使用 32210.2.3 类ConcurrentSkipListSet的使用 32510.2.4 类ConcurrentLinkedQueue的使用 32810.2.5 类ConcurrentLinkedDeque的使用 33010.2.6 类CopyOnWriteArrayList的使用 33210.2.7 类CopyOnWriteArraySet的使用 33510.3 阻塞队列 33710.3.1 类ArrayBlockingQueue的使用 33710.3.2 类PriorityBlockingQueue的使用 33810.3.3 类LinkedBlockingQueue的使用 34010.3.4 类LinkedBlockingDeque的使用 34110.3.5 类SynchronousQueue的使用 34110.3.6 类DelayQueue的使用 34410.3.7 类LinkedTransferQueue的使用 34510.4 本章总结 354 内容简介
本书主要介绍非常核心并常用的技术点,比如解决高并发环境下的线程间同步问题,可以使用Semaphore,CountDownLatch,CyclicBarrier以及Phaser类来解决,还要掌握线程池ThreadPoolExecutor的使用,还有线程池结合计划任务ScheduledExecutorService接口的使用,Future接口的使用,CompletionService异步任务的使用,ExecutorService工具接口的使用,Fork-Join分治编程的学习和Java技术中使用率比较高的并发集合框架。
目录
目 录?Contents前言第1章 Semaphore和Exchanger的使用 11.1 Semaphore的使用 21.1.1 类Semaphore的同步性 21.1.2 类Semaphore构造方法permits参数作用 41.1.3 方法acquire(int permits)参数作用及动态添加permits许可数量 51.1.4 方法acquireUninterruptibly()的使用 81.1.5 方法availablePermits()和drainPermits() 101.1.6 方法getQueueLength()和hasQueuedThreads() 121.1.7 公平与非公平信号量的测试 131.1.8 方法tryAcquire()的使用 151.1.9 方法tryAcquire(int permits)的使用 171.1.10 方法tryAcquire(long timeout, TimeUnit unit)的使用 171.1.11 方法tryAcquire(int permits, long timeout, TimeUnit unit)的使用 191.1.12 多进路-多处理-多出路实验 201.1.13 多进路-单处理-多出路实验 211.1.14 使用Semaphore创建字符串池 231.1.15 使用Semaphore实现多生产者/多消费者模式 251.2 Exchanger的使用 311.2.1 方法exchange()阻塞的特性 311.2.2 方法exchange()传递数据 321.2.3 方法exchange(V x, long timeout, TimeUnit unit)与超时 341.3 本章总结 35第2章 CountDownLatch和CyclicBarrier的使用 362.1 CountDownLatch的使用 362.1.1 初步使用 372.1.2 裁判在等全部的运动员到来 382.1.3 各就各位准备比赛 392.1.4 完整的比赛流程 412.1.5 方法await(long timeout, TimeUnit unit) 442.1.6 方法getCount()的使用 462.2 CyclicBarrier的使用 462.2.1 初步使用 482.2.2 验证屏障重置性及getNumberWaiting()方法的使用 512.2.3 用CyclicBarrier类实现阶段跑步比赛 522.2.4 方法isBroken()的使用 552.2.5 方法await(long timeout, TimeUnit unit)超时出现异常的测试 572.2.6 方法getNumberWaiting()和getParties() 602.2.7 方法reset() 622.3 本章总结 64第3章 Phaser的使用 653.1 Phaser的使用 663.2 类Phaser的arriveAndAwaitAdvance()方法测试1 663.3 类Phaser的arriveAndAwaitAdvance()方法测试2 683.4 类Phaser的arriveAndDeregister()方法测试 693.5 类Phaser的getPhase()和onAdvance()方法测试 703.6 类Phaser的getRegisteredParties()方法和register()测试 743.7 类Phaser的bulkRegister()方法测试 753.8 类Phaser的getArrivedParties()和getUnarrivedParties()方法测试 753.9 类Phaser的arrive()方法测试1 773.10 类Phaser的arrive ()方法测试2 783.11 类Phaser的awaitAdvance(int phase)方法测试 813.12 类Phaser的awaitAdvanceInterruptibly(int)方法测试1 833.13 类Phaser的awaitAdvanceInterruptibly(int)方法测试2 843.14 类Phaser的awaitAdvanceInterruptibly(int)方法测试3 863.15 类Phaser的awaitAdvanceInterruptibly(int,long,TimeUnit)方法测试4 873.16 类Phaser的forceTermination()和isTerminated()方法测试 893.17 控制Phaser类的运行时机 923.18 本章总结 93第4章 Executor与ThreadPoolExecutor的使用 944.1 Executor接口介绍 944.2 使用Executors工厂类创建线程池 974.2.1 使用newCachedThreadPool()方法创建无界线程池 984.2.2 验证newCachedThreadPool()创建为Thread池 1004.2.3 使用newCachedThreadPool (ThreadFactory)定制线程工厂 1024.2.4 使用newFixedThreadPool(int)方法创建有界线程池 1034.2.5 使用newFixedThreadPool(int, ThreadFactory)定制线程工厂 1054.2.6 使用newSingleThreadExecutor()方法创建单一线程池 1064.2.7 使用newSingleThreadExecutor(ThreadFactory)定制线程工厂 1074.3 ThreadPoolExecutor的使用 1074.3.1 构造方法的测试 1074.3.2 方法shutdown()和shutdownNow()与返回值 1194.3.3 方法isShutdown() 1294.3.4 方法isTerminating ()和isTerminated () 1294.3.5 方法awaitTermination(long timeout,TimeUnit unit) 1314.3.6 工厂ThreadFactory execute() UncaughtExceptionHandler处理异常 1344.3.7 方法set/getRejectedExecutionHandler() 1384.3.8 方法allowsCoreThreadTimeOut()/(boolean) 1404.3.9 方法prestartCoreThread()和prestartAllCoreThreads() 1424.3.10 方法getCompletedTaskCount() 1444.3.11 常见3种队列结合max值的因果效果 1454.3.12 线程池ThreadPoolExecutor的拒绝策略 1514.3.13 方法afterExecute()和beforeExecute() 1574.3.14 方法remove(Runnable)的使用 1594.3.15 多个get方法的测试 1624.3.16 线程池ThreadPoolExecutor与Runnable执行为乱序特性 1664.4 本章总结 167第5章 Future和Callable的使用 1685.1 Future和Callable的介绍 1685.2 方法get()结合ExecutorService中的submit(Callable)的使用 1685.3 方法get()结合ExecutorService中的submit(Runnable)和isDone()的使用 1705.4 使用ExecutorService接口中的方法submit(Runnable, T result) 1705.5 方法cancel(boolean mayInterruptIfRunning)和isCancelled()的使用 1735.6 方法get(long timeout, TimeUnit unit)的使用 1785.7 异常的处理 1795.8 自定义拒绝策略RejectedExecutionHandler接口的使用 1815.9 方法execute()与submit()的区别 1825.10 验证Future的缺点 1865.11 本章总结 188第6章 CompletionService的使用 1896.1 CompletionService介绍 1896.2 使用CompletionService解决Future的缺点 1906.3 使用take()方法 1936.4 使用poll()方法 1946.5 使用poll(long timeout, TimeUnit unit)方法 1956.6 类CompletionService与异常 1996.7 方法Future submit(Runnable task, V result)的测试 2056.8 本章总结 207第7章 接口ExecutorService的方法使用 2087.1 在ThreadPoolExecutor中使用ExecutorService中的方法 2087.2 方法invokeAny(Collection tasks)的使用与interrupt 2097.3 方法invokeAny()与执行慢的任务异常 2127.4 方法invokeAny()与执行快的任务异常 2167.5 方法invokeAny()与全部异常 2207.6 方法invokeAny(CollectionTasks, timeout, timeUnit)超时的测试 2227.7 方法invokeAll(Collection tasks)全正确 2267.8 方法invokeAll(Collection tasks)快的正确慢的异常 2277.9 方法invokeAll(Collection tasks)快的异常慢的正确 2307.10 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先慢后快 2327.11 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)先快后慢 2347.12 方法invokeAll(Collection tasks,long timeout,TimeUnit unit)全慢 2367.13 本章总结 238第8章 计划任务ScheduledExecutorService的使用 2398.1 ScheduledExecutorService的使用 2408.2 ScheduledThreadPoolExecutor使用Callable延迟运行 2418.3 ScheduledThreadPoolExecutor使用Runnable延迟运行 2448.4 延迟运行并取得返回值 2458.5 使用scheduleAtFixedRate()方法实现周期性执行 2468.6 使用scheduleWithFixedDelay()方法实现周期性执行 2488.7 使用getQueue()与remove()方法 2508.8 方法setExecuteExistingDelayedTasksAfterShutdownPolicy()的使用 2538.9 方法setContinueExistingPeriodicTasksAfterShutdownPolicy() 2558.10 使用cancel(boolean)与setRemoveOnCancelPolicy()方法 2578.11 本章总结 261第9章 Fork-Join分治编程 2629.1 Fork-Join分治编程与类结构 2629.2 使用RecursiveAction让任务跑起来 2649.3 使用RecursiveAction分解任务 2659.4 使用RecursiveTask取得返回值与join()和get()方法的区别 2669.5 使用RecursiveTask执行多个任务并打印返回值 2709.6 使用RecursiveTask实现字符串累加 2729.7 使用Fork-Join实现求和:实验1 2739.8 使用Fork-Join实现求和:实验2 2759.9 类ForkJoinPool核心方法的实验 2769.9.1 方法public void execute(ForkJoinTask task)的使用 2769.9.2 方法public void execute(Runnable task)的使用 2789.9.3 方法public void execute(ForkJoinTask task)如何处理返回值 2789.9.4 方法public ForkJoinTask submit(ForkJoinTask task)的使用 2799.9.5 方法public ForkJoinTask submit(Runnable task)的使用 2809.9.6 方法public ForkJoinTask submit(Callable task)的使用 2819.9.7 方法public ForkJoinTask submit(Runnable task, T result)的使用 2829.9.8 方法public List> invokeAll(Collection> tasks)的使用 2859.9.9 方法public void shutdown()的使用 2869.9.10 方法public List shutdownNow()的使用 2899.9.11 方法isTerminating()和isTerminated()的使用 2929.9.12 方法public boolean isShutdown()的使用 2959.9.13 方法public boolean awaitTermination(long timeout, TimeUnit unit)的使用 2979.9.14 方法public T invoke(ForkJoinTask task)的使用 2999.9.15 监视pool池的状态 3019.10 类ForkJoinTask对异常的处理 3089.11 本章总结 309第10章 并发集合框架 31010.1 集合框架结构简要 31010.1.1 接口Iterable 31010.1.2 接口Collection 31110.1.3 接口List 31110.1.4 接口Set 31210.1.5 接口Queue 31210.1.6 接口Deque 31210.2 非阻塞队列 31310.2.1 类ConcurrentHashMap的使用 31310.2.2 类ConcurrentSkipListMap的使用 32210.2.3 类ConcurrentSkipListSet的使用 32510.2.4 类ConcurrentLinkedQueue的使用 32810.2.5 类ConcurrentLinkedDeque的使用 33010.2.6 类CopyOnWriteArrayList的使用 33210.2.7 类CopyOnWriteArraySet的使用 33510.3 阻塞队列 33710.3.1 类ArrayBlockingQueue的使用 33710.3.2 类PriorityBlockingQueue的使用 33810.3.3 类LinkedBlockingQueue的使用 34010.3.4 类LinkedBlockingDeque的使用 34110.3.5 类SynchronousQueue的使用 34110.3.6 类DelayQueue的使用 34410.3.7 类LinkedTransferQueue的使用 34510.4 本章总结 354
|
|
|
购买该商品的会员还购买过以下商品 |
|
暂无购买信息!
|
|
|
相似商品 |
|
|
|