Executor框架学习之简介篇

Executor

  • Executor
  • ExecutorService
  • Executors
  • Runable
  • Callable
  • Futute
  • execute
  • submit

在学习Executor之前,需要首先了解以上8个单词各自的含义。

Executor(执行器)

并发编程的思想核心就是将一系列小任务(Runable)分发给不同的线程,每一个线程去执行各自的任务。而Executor主要用来管理这些线程,实现将执行单元和管理单元分离。Executor框架实现的就是线程池的功能。

Executor 接口提供了execute()

ExecutorService

void shutdown();
List<Runnable> shutdownNow();
boolean isShutdown();
boolean isTerminated();
<T> Future<T> submit(Callable<T> task);
<T> Future<T> submit(Runnable task, T result);
Future<?> submit(Runnable task);
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks,long timeout, TimeUnit unit)throws InterruptedException;
<T> T invokeAny(Collection<? extends Callable<T>> tasks)throws InterruptedException, ExecutionException;
<T> T invokeAny(Collection<? extends Callable<T>> tasks,long timeout, TimeUnit unit)throws InterruptedException,ExecutionException, TimeoutException;

其中ExecutorService 继承自Executor,实现了功能的扩展,重点是提供了submit功能。

Executors

Executors 是一个工具类,主要用来帮助创建各种线程池。

public static ExecutorService newFixedThreadPool(int nThreads) {
        return new ThreadPoolExecutor(nThreads, nThreads,0L, TimeUnit.MILLISECONDS,
                                      new LinkedBlockingQueue<Runnable>());
    }

ThreadPoolExecutor

通过Executors工具类来创建ThreadPoolExecutor的不同线程池FixedThreadPool、SingleThreadExecutor、CachedThreadPool,
例如

public class ThreadPoolTest {
    public static void main(String[] args) {
        ExecutorService es = Executors.newCachedThreadPool();
        es.submit(new Runnable() {
            @Override
            public void run() {

            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值