JAVA线程池应该在哪里创建?

问题描述

JAVA线程池应该在哪里创建?又或者说 一个线程池用于一个业务,还是多个业务,还是整个项目

阅读 4.5k
3 个回答

你问的这个问题太抽象了,不太清楚你的困惑在哪。

一个线程池可以用于一个业务,也可以用于多个业务,需要根据具体的场景分析。跟项目就完全没关系了,项目是软件建设过程概念,你的一个软件系统需要几个线程池完全取决于你的业务场景。

举个例子,Web服务器通常会有一个线程池用来处理http请求,这是单一业务场景,某个系统有一个固定大小的线程池,这个线程池里面定时运行若干任务,处理不同业务,这是多业务场景。

线程池一般跟着项目走,在项目启动的时候创建。比如servlet初始化的时候初始化一个全局的线程池

新手上路,请多包涵

忘记在哪本书看到过,线程池应该是针对整个项目,而不是单个业务。
为什么这么说呢?线程池面向的是什么?是CPU啊。。无论如何,CPU就能处理那么多事情。

----------------下面实我自己想的-------------------

但,也不是绝对化。比如两个业务,一个业务处理需要1ms,另外一个需要1h,如果线程池中前面部分全部被1h的任务塞满,1ms没机会执行,这不是就尴尬了,虽然也有很多机制去避免这种情况,但那又是他话了。
所以,绝对用同一个线程池,也是有点问题了。
以上纯属瞎猜,错了别怪我,哈哈。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题