Java线程池的四种创建

Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序

都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。

第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。
第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一分配、调优和监控。但是,要做到合理利用线程池,必须对其实现原理了如指掌。

线程池有什么作用

线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程所需的时间,从而提高效率。如果一个线程的时间非常长,就没必要用线程池了(不是不能作长时间操作,而是不宜。),况且我们还不能控制线程池中线程的开始、挂起、和中止。

Java通过Executors提供四种线程池,分别为:

//创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
ExecutorService pool =Executors.newCachedThreadPool

//创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
ExecutorService pool =Executors.newFixedThreadPool

//创建一个定长线程池,支持定时及周期性任务执行。
ExecutorService pool =Executors.newScheduledThreadPool

//创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
ExecutorService pool =Executors.newSingleThreadExecutor

//匿名内部类的方式启动线程
pool.execute(new Runnable() {
public void run() {
//线程执行代码
}
});
//关闭线程
pool.shutdown();

Java线程池创建资源来源网络,千锋教育整理,侵删


上一篇:guava创建线程池


下一篇:Java线程池