线程和线程池优缺点
每次new Thread的时候,都会创建⼀个单线程,但是,我们在项⽬中基本都是使⽤线程池,本⽂主要整理了线程和线程池的优缺点。new Thread的优缺点
优点:通过new Thread()创建线程的API简单易⽤,结构清晰,对于执⾏单⼀的⼀次性任务⼗分便利。thread技术
缺点:
1. 每次new Thread都新建对象,性能差;
2. 没有线程管理者,可能会⽆限制新建线程,不仅会消耗系统资源,还会降低系统的稳定性,例如占⽤过多的系统资源导致OOM;
3. 缺乏更多功能,⽐如定时、定期、并发数控制等功能。
线程池的优点
合理利⽤线程池能够带来三个好处:
降低资源消耗。通过重复利⽤已创建的线程降低线程创建和销毁造成的消耗。
提⾼响应速度。当任务到达时,任务可以不需要等到线程创建就能⽴即执⾏。
提⾼线程的可管理性。线程是稀缺资源,使⽤线程池可以进⾏统⼀的分配、调优和监控。
池化技术
提到线程池,就⾃然⽽然的想起了池化技术,池化技术的思想主要是提前缓存⼤量的资源,减少每次获取资源的消耗,提⾼对资源的利⽤率,特别是在⾼并发场景这种提⾼更加明显。使⽤池化技术缓存的资源对象有如下共同特点:
1. 对象创建时间长;
2. 对象创建需要⼤量资源;
3. 对象创建后可被重复使⽤。
除了上述线程池使⽤了池化技术,对象池、内存池(Memory pool)、数据库连接池和http连接池等也使⽤了。数据库连接池⽐较典型的有SqlServer、Oracle和MySQL的连接池。对象池就是提前创建很多对象,将⽤过的对象保存起来,等下⼀次需要这种对象的时候,再拿出来重复使⽤。同样,这么好的思想在ActiveMQ连接池中也得到了应⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论