java高并发系列 - 第18天:JAVA线程池

java高并发系列 - 第18天:JAVA线程池

这是java高并发系列第18篇文章。

本文主要内容

  1. 什么是线程池
  2. 线程池实现原理
  3. 线程池中常见的各种队列
  4. 自定义线程创建的工厂
  5. 常见的饱和策略
  6. 自定义饱和策略
  7. 线程池中两种关闭方法有何不同
  8. 扩展线程池
  9. 合理地配置线程池
  10. 线程池中线程数量的配置

什么是线程池

大家用jdbc操作过数据库应该知道,操作数据库需要和数据库建立连接,拿到连接之后才能操作数据库,用完之后销毁。数据库连接的创建和销毁其实是比较耗时的,真正和业务相关的操作耗时是比较短的。每个数据库操作之前都需要创建连接,为了提升系统性能,后来出现了数据库连接池,系统启动的时候,先创建很多连接放在池子里面,使用的时候,直接从连接池中获取一个,使用完毕之后返回到池子里面,继续给其他需要者使用,这其中就省去创建连接的时间,从而提升了系统整体的性能。

线程池和数据库连接池的原理也差不多,创建线程去处理业务,可能创建线程的时间比处理业务的时间还长一些,如果系统能够提前为我们创建好线程,我们需要的时候直接拿来使用,用完之后不是直接将其关闭,而是将其返回到线程中中,给其他需要这使用,这样直接节省了创建和销毁的时间,提升了系统的性能。

简单的说,在使用了线程池之后,创建线程变成了从线程池中获取一个空闲的线程,然后使用,关闭线程变成了将线程归还到线程池。

线程池实

你可能感兴趣的:(线程,java,oracle,数据库)