线程池

线程的缺点

  1. java中的线程,对应操作系统的线程,而频繁 创建 和 销毁 线程,都需要 消耗较大资源。当 频繁 创建 新线程,去完成一个时间很短的任务,会导致性能上的瓶颈。
    特别是,线程执行的时间 小于 (线程创建时间+线程销毁的时间) 的时候

  2. 线程数量创建过多,没有有效的管理,会大大降低系统的性能的!

线程池

是一个容纳多个线程的容器,创建线程池时,就已经创建若干个线程,执行过程如下:

  1. 当有任务需要执行时,就找一个 空闲线程 去执行
  2. 执行后,线程 不销毁掉,而是 回收到线程池中,等待下一个任务

只创建一次线程,线程就可以反复使用,省去了频繁创建线程、销毁线程的操作,不需要消耗过多资源。

根据具体的业务需求不同,结合操作系统的处理器 CPU核数,能够合理的控制线程池大小!选择不同策略的线程池,盲目使用也会带来一定风险,比如内存泄漏,死锁,并发问题…

线程池的好处

  1. 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
  2. 提高响应速度。有任务时,不需要去等待创建线程,直接使用已有的线程;
  3. 方便线程管理:根据CPU、内存、操作系统等等的情况,调整线程池中工作线程的数量,线程池对线程进行统一分配,调优,监控等等;

原文出处:/show_1EF4sk05Bq0j.html