Ant*_*hea 6 c++ multithreading
我正在使用std :: threads并且在我的设置中我的其他线程(可变数量,当前设置为10)正在使用如此多的容量,以至于我在任务管理器中使用的cpu达到应用程序的100%.这使我的主线程滞后,这应该是实时的(我认为这是滞后的原因).
我使用Intel Amplifier进行了调试,但没有其他线索可以解释为什么主线程应该滞后.我的次要线程都很忙.
是否有可能告诉线程它可以使用多少CPU最大值?如何确保我的其他线程不会影响主线程的性能?
线程初始化:
for (int i = 0; i < numberOfThreads; i++)
{
std::thread* thread = new std::thread(&MyClass::mWorker, this);
mThreads.push_back(thread);
}
Run Code Online (Sandbox Code Playgroud)
我的系统:i5-4590 3.3GHz,8 GB RAM,Windows 8 64位,Ogre3D图形引擎
我不认为有任何C++ 11的方法可以做到这一点,但你可以使用平台线程调度功能与native_handle,你可以从一个std::thread,然后设置线程的优先级(例如 - 优先主线程)或设置线程亲和性,以便主线程绑定到任何工作线程未使用的独占核心.
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |