而是: Executor executor = anExecutor; executor.execute(new RunnableTask1()); executor.execute(new RunnableTask2());
但是,Executor接口并不严格要求执行操作是异步的。在最简单的实现例子中,一个执行器,可以直接在调用所在的线程上运行提交的任务,如下所示,如果main线程给这个DirectExecutor提交了一个任务,那么执行这个任务的还是main线程。因为它没有单独创建线程。 class DirectExecutor implements Executor { public void execute(Runnable r) { r.run(); } }
更典型的是,提交的任务将被非调用线程的其他线程所执行。下面这个执行器就为每个任务产生一个新的线程。 class ThreadPerTaskExecutor implements Executor { public void execute(Runnable r) { new Thread(r).start(); } }
一些Executor实现,对任务如何以及何时被安排强加了一些限制。下面的这个执行器序列化了任务的提交给第二个执行器。形成一个复合的executor. Executor.java(源码)
转载于:https://www.cnblogs.com/longfurcat/p/9484108.html
相关资源:JAVA上百实例源码以及开源项目