多线程与线程池的区别

线程池的概念

线程池大类总共分为4种

  • fixThreadPool 正规线程(传统线程池)
  • cacheThreadPool 缓存线程池
  • singleThreadPoll 单线程线程池(单例线程池)
  • ScheduledThreadPoll 周期性执行任务的线程池
fixThreadPool 正规线程(传统线程池)

含有核心线程,核心线程即为最大线程数量,没有非核心线程

cacheThreadPool 缓存线程池

可缓存线程池,最大线程数很大,它会为每一个任务添加一个新的线程,这边有一个超时机制,当空闲的线程超过一定时间内没有用到的话,就会被回收。

singleThreadPoll 单线程线程池(单例线程池)

只存在一个线程,通过指定的顺序将任务一个个丢到线程,排队等待执行,不处理并发的操作,不会被回收。

ScheduledThreadPoll 周期性执行任务的线程池

周期性执行任务的线程池,按照某种特定的计划执行线程中的任务,有核心线程,但也有非核心线程,非核心线程的大小也为无限大。适用于执行周期性的任务。

线程池与多线程的区别
  • 线程池是在程序运行开始,创建好的n个线程,并且这n个线程挂起等待任务的到来。而多线程是在任务到来得时候进行创建,然后执行任务。
  • 线程池中的线程执行完之后不会回收线程,会继续将线程放在等待队列中;多线程程序在每次任务完成之后会回收该线程。
  • 由于线程池中线程是创建好的,所以在效率上相对于多线程会高很多。
  • 线程池也在高并发的情况下有着较好的性能;不容易挂掉。多线程在创建线程数较多的情况下,很容易挂掉。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值