Executor 任务执行器
Posted niejunlei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Executor 任务执行器相关的知识,希望对你有一定的参考价值。
Executor:
- 是一个接口
- 用于执行提交的任务
- 解耦任务提交和执行(线程的创建及调度)
Executor的实现可以根据实际需求延展不同的逻辑:
1. 对于提交的任务同步或者异步执行,如下同步执行:
class ThreadPerTaskExecutor implements Executor { public void execute(Runnable r) { new Thread(r).start(); }
2. 另起线程执行任务,如下:
class ThreadPerTaskExecutor implements Executor { public void execute(Runnable r) { new Thread(r).start(); }
3. 对于执行的任务添加限制:
class SerialExecutor implements Executor { final Queue<Runnable> tasks = new ArrayDeque<Runnable>(); final Executor executor; Runnable active; SerialExecutor(Executor executor) { this.executor = executor; } public synchronized void execute(final Runnable r) { tasks.offer(new Runnable() { public void run() { try { r.run(); } finally { scheduleNext(); } } }); if (active == null) { scheduleNext(); } } protected synchronized void scheduleNext() { if ((active = tasks.poll()) != null) { executor.execute(active); } } }}
以上是关于Executor 任务执行器的主要内容,如果未能解决你的问题,请参考以下文章