JAVA线程池应该在哪里创建?
问题描述
JAVA线程池应该在哪里创建?又或者说 一个线程池用于一个业务,还是多个业务,还是整个项目
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
JAVA线程池应该在哪里创建?又或者说 一个线程池用于一个业务,还是多个业务,还是整个项目
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
你问的这个问题太抽象了,不太清楚你的困惑在哪。
一个线程池可以用于一个业务,也可以用于多个业务,需要根据具体的场景分析。跟项目就完全没关系了,项目是软件建设过程概念,你的一个软件系统需要几个线程池完全取决于你的业务场景。
举个例子,Web服务器通常会有一个线程池用来处理http请求,这是单一业务场景,某个系统有一个固定大小的线程池,这个线程池里面定时运行若干任务,处理不同业务,这是多业务场景。
线程池一般跟着项目走,在项目启动的时候创建。比如servlet初始化的时候初始化一个全局的线程池
忘记在哪本书看到过,线程池应该是针对整个项目,而不是单个业务。
为什么这么说呢?线程池面向的是什么?是CPU啊。。无论如何,CPU就能处理那么多事情。
----------------下面实我自己想的-------------------
但,也不是绝对化。比如两个业务,一个业务处理需要1ms,另外一个需要1h,如果线程池中前面部分全部被1h的任务塞满,1ms没机会执行,这不是就尴尬了,虽然也有很多机制去避免这种情况,但那又是他话了。
所以,绝对用同一个线程池,也是有点问题了。
以上纯属瞎猜,错了别怪我,哈哈。