黑马程序员---线程并发库

软件包 java.util.concurrent

在并发编程中很常用的实用工具类。

请参见: 
          描述

接口摘要
BlockingDeque<E> 支持两个附加操作的 Queue,这两个操作是:获取元素时等待双端队列变为非空;存储元素时等待双端队列中的空间变得可用。
BlockingQueue<E> 支持两个附加操作的 Queue,这两个操作是:获取元素时等待队列变为非空,以及存储元素时等待空间变得可用。
Callable<V> 返回结果并且可能抛出异常的任务。
CompletionService<V> 将生产新的异步任务与使用已完成任务的结果分离开来的服务。
ConcurrentMap<K,V> 提供其他原子 putIfAbsentremovereplace 方法的 Map
ConcurrentNavigableMap<K,V> 支持 NavigableMap 操作,且以递归方式支持其可导航子映射的 ConcurrentMap
Delayed 一种混合风格的接口,用来标记那些应该在给定延迟时间之后执行的对象。
Executor 执行已提交的 Runnable 任务的对象。
ExecutorService Executor 提供了管理终止的方法,以及可为跟踪一个或多个异步任务执行状况而生成 Future 的方法。
Future<V> Future 表示异步计算的结果。
RejectedExecutionHandler 无法由 ThreadPoolExecutor 执行的任务的处理程序。
RunnableFuture<V> 作为 Runnable 的 Future
RunnableScheduledFuture<V> 作为 Runnable 的 ScheduledFuture
ScheduledExecutorService 一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。
ScheduledFuture<V> 一个延迟的、结果可接受的操作,可将其取消。
ThreadFactory 根据需要创建新线程的对象。
 

类摘要
AbstractExecutorService 提供 ExecutorService 执行方法的默认实现。
ArrayBlockingQueue<E> 一个由数组支持的有界阻塞队列
ConcurrentHashMap<K,V> 支持获取的完全并发和更新的所期望可调整并发的哈希表。
ConcurrentLinkedQueue<E> 一个基于链接节点的无界线程安全队列
ConcurrentSkipListMap<K,V> 可缩放的并发 ConcurrentNavigableMap 实现。
ConcurrentSkipListSet<E> 一个基于 ConcurrentSkipListMap 的可缩放并发 NavigableSet 实现。
CopyOnWriteArrayList<E> ArrayList 的一个线程安全的变体,其中所有可变操作(addset 等等)都是通过对底层数组进行一次新的复制来实现的。
CopyOnWriteArraySet<E> 对其所有操作使用内部 CopyOnWriteArrayList 的 Set
CountDownLatch 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
CyclicBarrier 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。
DelayQueue<E extends Delayed> Delayed 元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。
Exchanger<V> 可以在对中对元素进行配对和交换的线程的同步点。
ExecutorCompletionService<V> 使用提供的 Executor 来执行任务的 CompletionService
Executors 此包中所定义的 ExecutorExecutorServiceScheduledExecutorServiceThreadFactory和 Callable 类的工厂和实用方法。
FutureTask<V> 可取消的异步计算。
LinkedBlockingDeque<E> 一个基于已链接节点的、任选范围的阻塞双端队列
LinkedBlockingQueue<E> 一个基于已链接节点的、范围任意的 blocking queue
PriorityBlockingQueue<E> 一个无界阻塞队列,它使用与类 PriorityQueue 相同的顺序规则,并且提供了阻塞获取操作。
ScheduledThreadPoolExecutor ThreadPoolExecutor,它可另行安排在给定的延迟后运行命令,或者定期执行命令。
Semaphore 一个计数信号量。
SynchronousQueue<E> 一种阻塞队列,其中每个插入操作必须等待另一个线程的对应移除操作 ,反之亦然。
ThreadPoolExecutor 一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用Executors 工厂方法配置。
ThreadPoolExecutor.AbortPolicy 用于被拒绝任务的处理程序,它将抛出 RejectedExecutionException.
ThreadPoolExecutor.CallerRunsPolicy 用于被拒绝任务的处理程序,它直接在 execute 方法的调用线程中运行被拒绝的任务;如果执行程序已关闭,则会丢弃该任务。
ThreadPoolExecutor.DiscardOldestPolicy 用于被拒绝任务的处理程序,它放弃最旧的未处理请求,然后重试 execute;如果执行程序已关闭,则会丢弃该任务。
ThreadPoolExecutor.DiscardPolicy 用于被拒绝任务的处理程序,默认情况下它将丢弃被拒绝的任务。
 

枚举摘要
TimeUnit TimeUnit 表示给定单元粒度的时间段,它提供在这些单元中进行跨单元转换和执行计时及延迟操作的实用工具方法。
 

异常摘要
BrokenBarrierException 当某个线程试图等待处于断开状态的 barrier 时,或者 barrier 进入断开状态而线程处于等待状态时,抛出该异常。
CancellationException 如果某项值生成任务(如 FutureTask)的结果因为任务被取消而无法获取到,则抛出该异常。
ExecutionException 当试图获取已通过抛出异常而中止的任务的结果时,抛出此异常。
RejectedExecutionException 当无法执行某个任务时,由 Executor 抛出的异常。
TimeoutException 阻塞操作超时时,抛出该异常。

软件包 java.util.concurrent 的描述

在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类,没有这些类,这些功能会很难实现或实现起来冗长乏味。下面简要描述主要的组件。另请参阅 locks 和 atomic 包。

线程池

接口。 Executor  是一个简单的标准化接口,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。根据所使用的具体 Executor 类的不同,可能在新创建的线程中,现有的任务执行线程中,或者调用  execute()  的线程中执行任务,并且可能顺序或并发执行。 ExecutorService  提供了多个完整的异步任务执行框架。ExecutorService 管理任务的排队和安排,并允许受控制的关闭。 ScheduledExecutorService  子接口及相关的接口添加了对延迟的和定期任务执行的支持。ExecutorService 提供了安排异步执行的方法,可执行由  Callable  表示的任何函数,结果类似于  Runnable Future  返回函数的结果,允许确定执行是否完成,并提供取消执行的方法。 RunnableFuture  是拥有  run  方法的 Future, run  方法执行时将设置其结果。

实现。类 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor 提供可调的、灵活的线程池。Executors 类提供大多数 Executor 的常见类型和配置的工厂方法,以及使用它们的几种实用工具方法。其他基于 Executor 的实用工具包括具体类 FutureTask,它提供 Future 的常见可扩展实现,以及 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值