我刚刚在 C++ 中实现了一个非常简单的多线程作业队列,我认为(并阅读)为每个硬件线程使用一个工作线程是个好主意(在我的情况下是 4 个)。基本上我的应用程序现在只是从互联网上加载了很多图像(同时),我注意到如果我将工作线程的数量增加到 8 个甚至 16 个而不是 4 个,我会获得巨大的速度。
在这样的作业队列中使用多少个线程是否有一般规则?我的猜测是,如果我每帧都创建新作业,并且工作线程每帧的工作量恒定,而如果我想一次处理很多东西(比如加载 50 张左右的图像),那么 4 将是一个更大的数字比这更多的线程可以大大加快速度。不过,在不同情况下是否有正确数字的经验法则?
谢谢