线程池在应用程序资源的调配与处理上,做了一些优化,如果只是需要简单的多开几个线程来同时处理数据,而且每个线程的执行时间都很短,用线程池是一个不错的选择。

但是,如果每个子线程的执行时间很长,而总的需要处理的数据量很巨大,导致主线程又在不断的开启新的线程,个人感觉线程池不是一个很好的选择。

我 曾经有过这样的经历,感觉线程池用在这种情况下的话,一方面是速度好像总有一定的限制, 虽然可以更改线程池中的最大线程数,但总是不能自由的增加(当然是在硬件能够承受范围以内的),无法达到我想要的速度;另一方面我总怀疑是不是等待的线程 过多时,线程池会自动砍掉一些线程,造成数据的丢失(当然,只是怀疑)。

所以,我采用了自己控制线程数的办法,设定一个参数作为线程总数的上限值,当程序当前进程中的线程总数超过设定值的时候,则等待一段时间再开启新的线程。这样的话,速度是上去了,也未发现造成数据的丢失。

以上只是我个人的看法,仅供大家参考,大家有什么新的观点欢迎交流!我也会继续在实践中关注这方面的内容~

相关文章:

  • 2021-08-11
  • 2021-10-28
  • 2022-01-07
  • 2022-02-14
  • 2021-12-02
  • 2022-12-23
猜你喜欢
  • 2022-02-06
  • 2022-01-07
  • 2022-02-15
  • 2022-01-02
  • 2021-10-13
  • 2021-12-01
  • 2022-01-07
相关资源
相似解决方案