1. FixedThreadPool
固定容量线程池。创建线程池的时候,容量固定。构造的时候,提供线程池最大容量。
ExecutorService - 线程池服务类型。所有的线程池类型都实现这个接口。实现这个接口,代表可以提供线程池能力。
shutdown - 优雅关闭。 不是强行关闭线程池,回收线程池中的资源。而是不再处理新的任务,将已接收的任务处理完毕后再关闭。
Executors - Executor的工具类。类似Collection和Collections的关系。
ExecutorService service = Executors.newFixedThreadPool(5);
for(int i = 0; i < 6; i++){
service.execute(new Runnable() {
@Override
public void run() {
try {
TimeUnit.MILLISECONDS.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + " - test executor");
}
});
}
2. CachedThreadPool
无容量限制的线程池(最大容量默认为Integer.MAX_VALUE)
有过期时间:当无线程活跃时,60秒后线程池销毁;
3. ScheduledThreadPool
计划任务线程池。
可以定时执行任务;
可以定时循环执行任务;
不会过期;
4. SingleThreadExecutor
容量为1的线程池。 顺序执行。
5. ForkJoinPool
分支合并线程池。
用递归实现分支;
线程池底层处理机制
public class Test_01_MyExecutor implements Executor {
public static void main(String[] args) {
new Test_01_MyExecutor().execute(new Runnable() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " - test executor");
}
});
}
@Override
public void execute(Runnable command) {
new Thread(command).start();
}
}
网友评论