可缓存线程池:newCacheThreadPool
基本特点:
可缓存线程池,先查看池中有没有以前建立的线程
如果有,就直接使用。如果没有,就建一个新的线程加入池中。
缓存型池子通常用于执行一些生存期很短的异步型任务
创建示例:
// 可缓存线程池
ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
// 使用方式
cachedThreadPool.submit(new Thread() {
public void run() {
// TODO
}
});
固定线程数:newFixedThreadPool
基本特点:
创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程。
定长线程池的大小最好根据系统资源进行设置。
Java中获取系统线程核数。如 Runtime.getRuntime().availableProcessors()
代码示例:
// 可重用固定个数的线程池
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3);
// 使用方式
fixedThreadPool.submit(new Thread() {
public void run() {
// TODO
}
});