加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

线程池

发布时间:2022-10-12 12:58:45 所属栏目:Linux 来源:
导读:  每日一省:对于读过的好的技术博客,要懂得总结归纳,消化吸收线程池linux,才能在需要用到的时候心中有数,甚至信手拈来。

  今天看到的比较好的一篇关于java的线程池的博客,写下观后感。

  首先是
  每日一省:对于读过的好的技术博客,要懂得总结归纳,消化吸收线程池linux,才能在需要用到的时候心中有数,甚至信手拈来。
 
  今天看到的比较好的一篇关于java的线程池的博客,写下观后感。
 
  首先是使用线程池的好处:
 
  线程池里面,线程可以进行复用,从而减少线程的创建和销毁,因此可以减少线程创建和销毁的开销,提高cpu的使用率。 线程池可以管理线程数量,这样有两个好处:一是可以防止因为创建的线程过多而导致占用太多内存造成线程拥堵甚至导致oom系统错误。(每个线程大概占用1MB的内存空间)二是可以合理控制线程的数量,线程池里面会使用一些策略,在当前请求较多时,适当的增加线程的数量,保证吞吐量,而在请求比较少的时候,适当的销毁线程或者使线程处于空闲状态,把系统资源释放出来给其他需要的地方使用,以保证系统的利用率。 线程池里面还会内置一些方法可供调用,比如定时任务。
 
  有了上面说的这些优点,因此在程序里面应该尽量去使用线程池。
 
  java提供了以下5种内置的线程池,具体每个方法的说明是参考网上的博客,自己还没有去看过源代码:
 
  实际上上面的这些方法都是调用的ThreadPoolExecutor构造方法,然后根据我们传入的参数去设置对应的变量值,因此如果以上的5个方法都无法满足要求时,我们可以直接调用ThreadPoolExecutor构造方法去自定义自己的线程池。
 
  疑问:上面几个java内置的创建线程池的方法,有些使用了无上限的队列,有些又没有限制创建的线程数量上限,这样请求太多太快的话有可能会导致oom问题。
 
  这里只是记载一下,源码没看,先把详细介绍的博客贴上,以便以后复习: Java并发编程:线程池的使用
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!