- 工作单元:
Runnable和Callable。 - 执行机制:
Executor。
1. 工厂类
工厂类 Executors 创建以下三种 ThreadPoolExecutor :
SingleThreadExecutor:创建使用单个线程的线程池,保证顺序地执行各个任务。FixedThreadPool:创建使用固定线程数量的线程池,适用于负载比较重、资源较为有限的服务器。CachedThreadPool:创建大小无界的线程池,适用于有大量短期异步的程序或负载较轻的服务器。
工厂类 Executors 创建以下两种 ScheduledThreadPoolExecutor:
ScheduledThreadPoolExecutor:包含多个线程,适用于多后台线程执行周期任务。SingleThreadScheduledExecutor:只包含一个线程,适用于单后台线程执行周期任务。
2. Future接口
该接口用于获得异步计算的结果:
<T> Future<T> submit(Callable<T> task)<T> Future<T> submit(Runnable task, T result)Future<?> submit(Runnable task)
使用工厂类 Executors 可以把一个 Runnable 包装为一个 Callable ,但是其实并不能简单无侵入地实现获得返回值的操作(仅能得到null,除非在 run() 中进行修改操作),仅适用于“当将需要Callable的方法应用于其他无结果的操作时,这个方法会很有用”。
public static <T> Callable<T> callable(Runnable task, T task)
