gpt4 book ai didi

java - 如何在服务器端为我的线程池设置合适的线程数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:52 25 4
gpt4 key购买 nike

我只想问一个菜鸟问题:如何在服务器端为我的线程池设置合适的线程数?

  1. 是否有任何我可以遵循的一般规则或公式?
  2. 我必须考虑哪些问题?比如每秒的网络请求数,CPU核心数,我的应用中CPU和内存的使用率,我的服务器使用的硬件等等。

最佳答案

好吧,池的大小基本上应该设置为在您的配置上并发执行的最大可能的命令,比如如果您有 4 个内核(没有超线程),那么您可以将它设置为 4。使用超线程,您可以设置为 8。

然而,存在以下问题:应用程序的预期行为是什么,如果它想从池中获取一个线程,但池是空的(就像你在池中有 8 个线程,如果它们是在接下来的 10 分钟内处理视频编码工作,然后您在经理线程中收到一个新请求)。

但是您应该考虑,不能保证您的所有线程每时每刻都在运行,即使您的应用程序非常完美地处理线程,因为其他应用程序同时在您的计算机上运行(例如您的操作系统),并且他们也需要 CPU。

另一方面,这也是一个大问题,线程在您的池中做什么?您没有提供有关此线程池用于什么用途的信息,它们是否用于您自己的应用程序,或者您想配置一个开源应用程序/商业应用程序等。创建和管理线程确实有很高的成本(调度、上下文切换)等),这可能只有在您的线程存活时间足够长(您可以提供足够的工作让它们继续工作)的情况下才有值(value)。

有关更多详细信息,我猜 Google 可能是这个主题的一个很好的起点,搜索以下关键字:“调度、并发、线程、Java 执行程序服务、超线程”。

关于java - 如何在服务器端为我的线程池设置合适的线程数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com