如果我需要处理器核心以 100% 的速度运行十几秒,那么这样做是个好主意吗?或者如果我让系统决定如何处理线程,我会获得更好的性能吗?
我需要的是快速执行,我担心系统在使用所有内核之前可能会花费几秒钟,但我还没有找到任何使用 boost 线程执行此操作的方法。
最佳答案
您的操作系统的调度程序应该以毫秒为单位为您处理,而不是秒。细节取决于您运行的操作系统,但一种常见的方法是当调度程序在空闲 CPU 上运行时,它会检查是否可以从另一个拥有太多线程的 CPU 窃取线程。这可以快速平衡所有 CPU 之间的线程。
作为一般规则,如果您需要设置 CPU 亲和性,要么您有一个非常具体和不寻常的用例,要么您的操作系统有错误。
关于c++ - 有没有办法使用 boost 线程库将线程亲和性设置为处理器内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335652/