c++ - 有没有办法使用 boost 线程库将线程亲和性设置为处理器内核?

标签 c++ multithreading boost-thread affinity

如果我需要处理器核心以 100% 的速度运行十几秒,那么这样做是个好主意吗?或者如果我让系统决定如何处理线程,我会获得更好的性能吗?

我需要的是快速执行,我担心系统在使用所有内核之前可能会花费几秒钟,但我还没有找到任何使用 boost 线程执行此操作的方法。

最佳答案

您的操作系统的调度程序应该以毫秒为单位为您处理,而不是秒。细节取决于您运行的操作系统,但一种常见的方法是当调度程序在空闲 CPU 上运行时,它会检查是否可以从另一个拥有太多线程的 CPU 窃取线程。这可以快速平衡所有 CPU 之间的线程。

作为一般规则,如果您需要设置 CPU 亲和性,要么您有一个非常具体和不寻常的用例,要么您的操作系统有错误。

关于c++ - 有没有办法使用 boost 线程库将线程亲和性设置为处理器内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13335652/

相关文章:

c++ - 循环调用 boost io_service poll

c++ - C++ 中编译时浮点除以零

java - 使用 IAudioEndpointVolume

c# - 向 UI 添加内容时如何阻止 UI 被锁定

python - 在 python 中没有线程的定时器?

c++ - boost::condition_variable - 将 wait_for 与谓词一起使用

c++ - boost::asio::io_service.post() 后台线程内存使用

c++ - 查找 vector 中的最小值

c++ - fopen 不工作

c# - 为什么我得到异常 : A blocking operation was interrupted by a call to WSACancelBlockingCall?