Java线程池

为什么需要线程池

在面向对象编程中,创建和销毁对象是很浪费时间的,因为创建一个对象需要获取内存资源或更多其他的资源。在Java中更是如此,JVM将试图跟踪每一个对象,以便能在对象销毁以后进行垃圾回收。所以提高程序效率的很重要的方式之一就是尽可能减少对象的创建和销毁的次数,特别是一些很消耗资源的对象的创建,这就是“池化资源”产生的原因。线程池顾名思义就是将事先创建好的若干个线程放入池中,需要的时候从池中获取线程不需要自行创建,用完的时候放回到池中不需要销毁线程,从而减少线程对象创建和销毁的开销。

Java中线程池的类

SingleThreadExcutor:创建一个单线程的线程池。此线程池中只有一个线程,也就是相当于串行执行每一个任务。如果这个线程异常结束那么会重新创建一个新的线程。

FixedThreadPool:创建一个固定大小的线程池。每次提交任务就创建一个线程,知道达到线程池所能创建的固定线程数。线程数一旦达到固定值就不会改变,如果有线程异常结束,那么线程池会补充一个新的线程。

CacheThreadPool:创建一个可缓存的线程池。如果线程池的大小超过了需要的线程数,就会回收部分空闲的线程(60秒不执行任务),当任务数量增加时有会重新生成线程。此线程池不会对大小做限制,线程池的大小取决于操作系统。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值