gpt4 book ai didi

multithreading - 常规-线程池中的线程数

转载 作者:行者123 更新时间:2023-12-03 13:15:46 30 4
gpt4 key购买 nike

我和一个 friend 正在争论线程池中的线程数应该是处理器计数+ 1还是仅仅是处理器计数。

我之所以选择处理器数量,是因为每个处理器可以分配偶数个线程,而他选择处理器数量+ 1是因为他认为这将帮助他优化性能。

谁是正确的?

最佳答案

你们俩都没有

正确的答案是:您需要多个产生最佳总体结果的线程。

您添加的每个线程都有一个成本。这是一个很小的成本,但绝对是一个成本。将30,000个线程放入线程池,并观察您的系统停止运行(如果它们都在做某事)。

但是从概念上讲,每个线程都可以为您节省一些(总体)时间。

从概念上讲,您可以绘制该关系并生成一定范围的线程,在某些资源限制下,这些线程将为您提供所需的结果。正确的线程数在该范围内。

注意:我说“总体结果”。那不一定是“最快的结果”。一个线程可以在10分钟内完成一项任务。 15秒钟内可以有100个线程。 10个秒之内可能有1000个线程执行此操作,因为您开始遇到特定问题的争用限制。这是更好的整体结果吗? 10和15秒之间可能没有真正的区别,但是1000个线程可能会使用更多的内存。

请记住,并非所有线程都受CPU限制,因此在很多情况下,拥有比内核数更多的线程是很合理的,因为在执行任务的某个时刻,线程可能在等待某事发生时就处于休眠状态(网络通信) ,磁盘读取,无论如何)。

关于multithreading - 常规-线程池中的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2242260/

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