xperious Asked:2020-07-11 17:40:18 +0000 UTC2020-07-11 17:40:18 +0000 UTC 2020-07-11 17:40:18 +0000 UTC QThreadPool问题 772 我用了QThreadPool,我做setMaxThreadCount(10)了,没有错误,一切正常,只是线程池中还有4个线程(机器上的核心数),我完全不明白为什么。谁遇到过这个问题,你是如何解决这个问题的? c++ 1 个回答 Voted Best Answer KoVadim 2020-07-11T19:24:47Z2020-07-11T19:24:47Z setMaxThreadCount设置“QThreadPool”可以使用的最大线程数。'activeThreadCount' 将显示当前正在使用的线程数。一次创建多个线程是没有意义的。但是如果你创造了足够多的工作,也许“QThreadPool”会创造它们。但是在这里,一切又很复杂 - 如果任务与网络/磁盘一起工作并且速度很慢,那么许多线程是合理的。如果任务很重(视频编码、比特币、密码暴力),那么线程数乘以内核数是最佳的。增加线程数不会增加。 如需进一步了解,请阅读阿姆达尔定律。
setMaxThreadCount
设置“QThreadPool”可以使用的最大线程数。'activeThreadCount' 将显示当前正在使用的线程数。一次创建多个线程是没有意义的。但是如果你创造了足够多的工作,也许“QThreadPool”会创造它们。但是在这里,一切又很复杂 - 如果任务与网络/磁盘一起工作并且速度很慢,那么许多线程是合理的。如果任务很重(视频编码、比特币、密码暴力),那么线程数乘以内核数是最佳的。增加线程数不会增加。如需进一步了解,请阅读阿姆达尔定律。