Package java.util.concurrent | |
This package includes a number of powerful
utilities for multithreaded programming. Most of these utilities fall
into three main categories:
- Collections
-
This package extends the Java Collections Framework, adding the
threadsafe classes ConcurrentHashMap,
CopyOnWriteArrayList,
CopyOnWriteArraySet, and
ConcurrentLinkedQueue. These classes achieve
threadsafety without relying exclusively on
synchronized methods, greatly increasing the
number of threads that can safely use them concurrently.
ConcurrentHashMap implements the
ConcurrentMap interface, which adds important
atomic methods to the base java.util.Map
interface.
In addition to these Map, List,
Set, and Queue implementations,
this package also defines the BlockingQueue
interface. Blocking queues are important in many concurrent
algorithms, and this package provides a variety of useful
implementations: ArrayBlockingQueue,
DelayQueue,
LinkedBlockingQueue,
PriorityBlockingQueue, and
SynchronousQueue.
- Asynchronous Execution with Thread Pools
-
java.util.concurrent provides a robust framework
for asynchronous execution of tasks defined by the existing
java.lang.Runnable interface or the new
Callable interface. The
Executor, ExecutorService, and
ScheduledExecutorService interfaces define methods
for executing (or scheduling for future execution)
Runnable and Callable tasks.
The Future interface represents the future result
of the asynchronous execution of a task.
ThreadPoolExecutor and
ScheduledThreadPoolExecutor are executor
implementations based on highly configurable thread pools. The
Executors class provides convenient factory
methods for obtaining instances of these thread pool implementations.
- Synchronizers
-
A number of classes in this package are useful for synchronizing two
or more concurrent threads. See CountDownLatch,
CyclicBarrier, Exchanger, and
Semaphore.
Interfaces
public interface BlockingQueue<E> extends java.util.Queue<E>;
public interface Callable<V>;
public interface CompletionService<V>;
public interface ConcurrentMap<K, V> extends java.util.Map<K, V>;
public interface Delayed extends Comparable<Delayed>;
public interface Executor;
public interface ExecutorService extends Executor;
public interface Future<V>;
public interface RejectedExecutionHandler;
public interface ScheduledExecutorService extends ExecutorService;
public interface ScheduledFuture<V> extends Delayed, Future<V>;
public interface ThreadFactory;
Enumerated Types
public enum TimeUnit;
Collections
public class ArrayBlockingQueue<E> extends java.util.AbstractQueue<E>
implements BlockingQueue<E>, Serializable;
public class ConcurrentHashMap<K, V> extends java.util.AbstractMap<K, V>
implements ConcurrentMap<K, V> Serializable;
public class ConcurrentLinkedQueue<E> extends java.util.AbstractQueue<E>
implements java.util.Queue<E>, Serializable;
public class CopyOnWriteArrayList<E> implements java.util.List<E>, java.util.RandomAccess, Cloneable, Serializable;
public class CopyOnWriteArraySet<E> extends java.util.AbstractSet<E>
implements Serializable;
public class DelayQueue<E extends Delayed> extends java.util.AbstractQueue<E>
implements BlockingQueue<E>;
public class LinkedBlockingQueue<E> extends java.util.AbstractQueue<E>
implements BlockingQueue<E>, Serializable;
public class PriorityBlockingQueue<E> extends java.util.AbstractQueue<E>
implements BlockingQueue<E>, Serializable;
public class SynchronousQueue<E> extends java.util.AbstractQueue<E>
implements BlockingQueue<E>, Serializable;
Other Classes
public abstract class AbstractExecutorService implements ExecutorService;
public class ThreadPoolExecutor extends AbstractExecutorService;
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor
implements ScheduledExecutorService;
public class CountDownLatch;
public class CyclicBarrier;
public class Exchanger<V>;
public class ExecutorCompletionService<V> implements CompletionService<V>;
public class Executors;
public class FutureTask<V> implements Future<V>, Runnable;
public class Semaphore implements Serializable;
public static class ThreadPoolExecutor.AbortPolicy implements RejectedExecutionHandler;
public static class ThreadPoolExecutor.CallerRunsPolicy implements RejectedExecutionHandler;
public static class ThreadPoolExecutor.DiscardOldestPolicy implements RejectedExecutionHandler;
public static class ThreadPoolExecutor.DiscardPolicy implements RejectedExecutionHandler;
Exceptions
public class BrokenBarrierException extends Exception;
public class CancellationException extends IllegalStateException;
public class ExecutionException extends Exception;
public class RejectedExecutionException extends RuntimeException;
public class TimeoutException extends Exception;
|