Java 并发包概述

并发编程经常需要用到的,包含了一些可以拓展的轻量级框架

Executors
接口:Executor 提供了一个任务提交,执行的异步多线程处理框架,包括线程池,异步I/O,轻量级异步框架。 ExecutorService 提供了一个更加完整的异步任务执行框架,一个 ExecutorService管理着队列和计划任务,并且允许自主控制的关闭任务;ScheduledExecutorService和相关联的接口支持延时任务和周期任务执行; Future提供了任务执行结果返回的功能,并且提供了取消任务方式。

实现类: ThreadPoolExecutor 和 ScheduledThreadPoolExecutor提供了可调的灵活的线程池,Executors 对常见的配置和类型提供了工厂方法和一些经常使用的方法,另一些基于Executors 的类包括 FutureTask提供了一些可拓展的 Future,ExecutorCompletionService协助处理异步任务。 ForkJoinPool提供了对 ForkJoinTask和它子类的主要设计,这些类对计算密集型的并行处理提高了吞吐量。

Queues
ConcurrentLinkedQueue 提供了有效率的线程安全的,不阻塞的先进先出队列
LinkedBlockingQueue, ArrayBlockingQueue, SynchronousQueue, PriorityBlockingQueue, and DelayQueue提供了这5种队列,涵盖了通用的场景:生产者-消费者,消息,并行处理,以及相关的并行设计。
TransferQueue, LinkedTransferQueue提供了同步的传输方法。
BlockingDeque LinkedBlockingDeque支持 FIFO 和LIFO操作。

Timing
TimeUnit提供了多种粒度(包含纳秒)的具体和超时时间控制的业务

Synchronizers
Semaphore一个典型的并发编程工具
CountDownLatch是一个非常简单但非常普遍实用,对阻塞来说直到一定数量的信号,事件,或条件持有情况
CyclicBarrier是多路同步点有用的一些样式的并行编程
Phaser 提供了一个更灵活的栅栏,可以用来控制分段计算多个线程。
  Exchanger允许2个线程交换对象,在管道设计时十分有用

Concurrent Collections
ConcurrentHashMap通常被用于线程安全的HashMap, ConcurrentSkipListMap通常被用于线程安全的TreeMap, ConcurrentSkipListSet, CopyOnWriteArrayList通常被用于线程安全的ArrayList , and CopyOnWriteArraySet

Memory Consistency Properties
happen-before 原则

猜你喜欢

转载自u011997289.iteye.com/blog/2398241