Executor控制器是jdk1.5之后新增的工具类。用于作为一个中介来统一管理并发任务。
1.CacheThreadPool 将为每个任务都开一个线程:
ExecutorService exec = Executors.newCachedThreadPool();
for (int i = 0; i < 2; i++) {
final int c = i;
exec.execute(new Runnable(){
public void run() {
// TODO Auto-generated method stub
System.out.println(c+":"+Thread.currentThread().getName());
}}
);
}
exec.shutdown();
shutdown()方法的调用可以防止新任务被提交给Executor
2.FixedThreadPool 将使用有限的线程来完成任务,貌似线程池的概念,使用的线程不会超过指定的数量
ExecutorService exec = Executors.newFixedThreadPool(1);
3.SingleThreadExecutor 只生成一个线程,所有的任务都会在这一个线程里执行,貌似是顺序执行的。前一个任务执行完成后才会执行后面的任务。这些任务将会形成一个队列的形式。
ExecutorService exec = Executors.newSingleThreadExecutor();
4.ScheduledExecutorService 可以替代定时器来做任务分配
ScheduledExecutorService scheduExec = Executors
.newScheduledThreadPool(1);