gpt4 book ai didi

c++ - 如何确定子线程总数?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:20 24 4
gpt4 key购买 nike

我正在从事 linux 服务器编程,我不确定我的线程池的子线程数量是否合适。这些线程正在执行实际工作,包括解析和数据处理等。如果我的服务器有 8 个内核,那么我应该生成多少个子线程才合适?提前致谢..

最佳答案

如果您的问题是您实际拥有多少个线程,那么 man ps 将为您提供许多选项,用于将正在运行的线程显示为进程——您需要做的就是计算他们。

如果您的问题是关于您应该创建多少个线程,那么这完全取决于您的应用程序及其作用。如果每个线程都没有 IO 和 syncronouz 调用,并且它所做的只是数字运算——那么您应该有不超过 8 个线程(每个内核一个)。但是,如果您的应用程序正在执行任何会导致它等待外部 IO 的操作,那么您可以从中受益更多。我说可以,因为这完全取决于您的应用程序是如何构建的——在大多数情况下,您需要进行试验;这通常会先用 8 个线程进行测试,看看每秒可以处理多少请求,然后增加线程数并再次运行实验。然后将结果绘制成一条曲线,找到额外线程不会增加(或很少)附加值的最佳位置——这就是您应该配置的线程数。这是有原因的,假设您没有造成其他瓶颈,例如您希望避免的内存/交换

关于c++ - 如何确定子线程总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825205/

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