Excutor源码解析

Current 之Excutor

package java.util.concurrent;

/**
 * 
 *这是一个执行runnable的任务,这个接口从技术层面为每个任务如何运行提供一种解耦的方式,
 *包括线程使用的细节,时序安排等。Excutor是经常被使用的,除了明确的创建线程。
 *例如,如果你使用一系列的线程不是new Thread(new(RunnableTask())).start(),你就可以使用:
 * <pre>
 * Executor executor = <em>anExecutor</em>;
 * executor.execute(new RunnableTask1());
 * executor.execute(new RunnableTask2());
 * ...
 * </pre>
 *然而,Excutor接口不需要严格的异步执行,在最简单的例子里面,一个Excutor可以在调用者的线程里面立即运行提交的任务
 *更典型的,任务可执行在一些线程里面。而不是调用者的线程里面。excutor会创建一个新的线程
 *许多实现了Excutor接口的都被降价了一些限制关于怎样、何时任务被安排执行。
 *这个Excutor之下的一系列的任务都是二级Excutor用来解释一个复杂的Excutor
 *实现都在ExcutorService包里面,这是一个更具有扩展性的接口,ThreadPoolExcutor类提供了一个扩展的线程池的实现。
 *Excutor类提供了一个方便的工厂放阿飞为这些Excutors
 *内存一致性的影响:在一个优先提交一个Runnable对象给一个Excutor的行为中,在这之前taken在另一个线程中。
*/
public interface Executor {

    /**
     *
     *在将来某个时候执行给的这个指令,这个指令可能会在一个新的线程中,
     *在一个线程池中或者在一个调用她的线程中,他会根据实现类自动判断
     * @param command the runnable task
     * @throws RejectedExecutionException if this task cannot be
     * accepted for execution
     * @throws NullPointerException if command is null
     */
    void execute(Runnable command);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值