Thread, Runnable, Callable, Future, FutureTask, Executor, ExecutorService
Thread是JVM提供的线程,通过操作OS内核来实现,可以直接调用,或者extends Thread来使用线程,也可以implements Runnable和Callable来实现接口。
Callable可以用call方法直接获取返回值,但一般和ExecutorService配合,用到submit方法,主要是:
Future<?> submit(Runnable task);
<T> Future<T> submit(Callable<T> task);//两种
FutureTask extends Future
public interface RunnableFuture<V> extends Runnable, Future<V>;
public class FutureTask<V> implements RunnableFuture<V>;
返回Future或FutureTask之后,使用其提供的cancel, isCancelled, isDone, get(), get(long timeout, TimeUnit unit)来进行控制,避免使用共享变量和线程通信。