<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8
compact1

Package java.util.concurrent

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

See: 描述

Package java.util.concurrent Description

在并发编程中常用的实用类。这个软件包包括一些小的标准化可扩展的框架,以及一些类,提供有用的功能,否则繁琐或难以实现。这里是简要介绍的主要组成部分。又见 java.util.concurrent.locksjava.util.concurrent.atomic包。

遗嘱执行人

接口。 Executor是定义自定义线程子系统一个简单的标准化接口,包括线程池,异步I/O,和轻量级任务框架。这取决于具体的执行者级正在使用,任务可以在一个新创建的线程执行,现有的任务执行线程的线程调用,或 execute,可以依次或同时执行。 ExecutorService提供了更完整的异步任务执行框架。一个服务管理排队和调度任务,并允许控制关机。的 ScheduledExecutorService接口和相关的接口添加延迟和周期性任务执行支持。executorservices提供方法安排任何函数表示为 Callable异步执行的结果, Runnable轴承模拟。一个 Future返回一个函数的结果,可以确定是否执行完成,并提供了一种手段来取消执行。一个 RunnableFutureFuture具有在执行 run方法,设置它的结果。

实现。ThreadPoolExecutorScheduledThreadPoolExecutor提供可调的、灵活的线程池。的Executors类提供了最常见的种类和配置执行工厂方法,以及一些实用的使用方法。基于Executors其他设施包括具体的类提供一个共同FutureTask期货,可扩展的实现和ExecutorCompletionService,帮助协调异步任务组的处理。

ForkJoinPool提供执行器主要用于ForkJoinTask及其子类处理实例。这些类采用了工作窃取调度,达到高吞吐量的任务,符合限制,往往保持在计算密集型并行处理。

队列

ConcurrentLinkedQueue类提供了一个高效可扩展的线程安全的非阻塞FIFO队列。的 ConcurrentLinkedDeque类相似,但同时支持 Deque接口。

java.util.concurrent五实现支持扩展BlockingQueue接口,定义阻塞版本会:LinkedBlockingQueueArrayBlockingQueueSynchronousQueuePriorityBlockingQueue,和DelayQueue。不同的类包括生产者消费者、消息传递、并行处理和相关并行设计的最常见的使用上下文上下文。

TransferQueue扩展接口,实现LinkedTransferQueue介绍同步transfer方法(以及相关的功能),生产者可以选择块等待消费者。

BlockingDeque接口扩展的BlockingQueue支持FIFO和LIFO(基于堆栈的)操作。类提供了一个实现LinkedBlockingDeque

定时

TimeUnit类提供了多粒度(包括纳秒)指定和控制的基于超时的操作。包中的大多数类都包含基于超时的操作,除了不确定的等待。在所有的情况下,超时使用,超时指定方法应该在表明它超时等待时间最小。实现“尽最大努力”,以检测超时,尽快后,他们发生。然而,一段时间从一个超时检测线实际执行后再次暂停。接受超时参数的所有方法处理值小于或等于零,意味着不等待。等待“永远”,你可以用一个价值 Long.MAX_VALUE

同步化器

五类援助常见的专用同步成语。

并发集合

除了队列,这包装用品收集实现设计中使用多线程的上下文: ConcurrentHashMapConcurrentSkipListMapConcurrentSkipListSetCopyOnWriteArrayList,和 CopyOnWriteArraySet。当许多线程将访问给定的集合,一个 ConcurrentHashMap通常最好同步 HashMap,和 ConcurrentSkipListMap通常最好同步 TreeMap。一个 CopyOnWriteArrayList最好是同步的 ArrayList当预期数量的读取和遍历大大超过更新号码列表。

这个包中的一些类的“并发”前缀是一个表示类似“同步”类的几个区别的速记。例如java.util.HashtableCollections.synchronizedMap(new HashMap())同步。但ConcurrentHashMap是“并发”。并发集合是线程安全的,但不受一个单一的互斥锁的支配。在ConcurrentHashMap的具体情况,它安全地允许任何数量的并发读取以及写入一个可调谐的并发数量。”同步“类可以是有用的,当你需要通过一个单一的锁,以防止所有访问到一个集合,在牺牲较差的可扩展性。在其他情况下,多个线程将访问一个常见的集合,“并发”版本通常是最好的。和不同步的集合是最好的当集合是共享的,或是只有当持有其他锁。

大多数并行采集的实现(包括大多数队列)也不同于一般的java.util公约在其IteratorsSpliterators提供弱一致性而不是快速失败的遍历:

内存一致性

Chapter 17 of the Java Language Specification内存操作如定义之前发生的读取和写入共享变量的关系。一个写一个线程,结果保证是可见的由另一个线程读写操作之前发生的只有读操作。的 synchronizedvolatile构造,以及 Thread.start()Thread.join()方法,可以形成之前发生的关系。特别是: java.util.concurrent及其子包中的所有类中的方法将这些保证更高级别的同步。特别是:
从以下版本开始:
1.5
Skip navigation links
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585