我的CPU / OS可以处理多少个线程?

时间:2016-11-25 20:22:07

标签: c++ multithreading

我创建了一个C ++应用程序。可以同时运行多少个线程?

2 个答案:

答案 0 :(得分:3)

基本上,您的操作系统可以处理或多或少无限多个线程。这只是保留上下文/调度请求列表的问题。

现在,同时对你来说意味着不同的东西 - 如果你的意思是“在完全相同的时间运行”,你当然不能拥有比CPU中的内核更多的并行执行。但从更广泛的意义上讲,“轮流被执行以便在一个线程被阻止时,例如等待文件I / O,其他人可以工作”,这是没有限制的。

有用性有限 - 存在处理开销,切换线程导致频繁的缓存失效,但没有硬性限制。

答案 1 :(得分:1)

有一个名为std::threadhardware_concurrency()成员函数,返回硬件线程上下文数量的估计值

#include <iostream>
#include <thread>

int main(){
    std::cout << std::thread::hardware_concurrency() << std::endl;
    return 0;
}
相关问题