问题描述
JAVA线程池应该在哪里创建?又或者说 一个线程池用于一个业务,还是多个业务,还是整个项目
忘记在哪本书看到过,线程池应该是针对整个项目,而不是单个业务。
为什么这么说呢?线程池面向的是什么?是CPU啊。。无论如何,CPU就能处理那么多事情。
----------------下面实我自己想的-------------------
但,也不是绝对化。比如两个业务,一个业务处理需要1ms,另外一个需要1h,如果线程池中前面部分全部被1h的任务塞满,1ms没机会执行,这不是就尴尬了,虽然也有很多机制去避免这种情况,但那又是他话了。
所以,绝对用同一个线程池,也是有点问题了。
以上纯属瞎猜,错了别怪我,哈哈。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
你问的这个问题太抽象了,不太清楚你的困惑在哪。
一个线程池可以用于一个业务,也可以用于多个业务,需要根据具体的场景分析。跟项目就完全没关系了,项目是软件建设过程概念,你的一个软件系统需要几个线程池完全取决于你的业务场景。
举个例子,Web服务器通常会有一个线程池用来处理http请求,这是单一业务场景,某个系统有一个固定大小的线程池,这个线程池里面定时运行若干任务,处理不同业务,这是多业务场景。