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

How many threads can my CPU/OS handle?

本文关键字:处理 多少 线程 CPU OS 我的      更新时间:2023-10-16

i创建C 应用。可以同时运行多少个线程?

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

现在,同时对您意味着不同的事情 - 如果您实际上是指"完全同时运行",那么您当然不能比CPU中的内核更平行执行。但是从更广泛的意义上讲,"轮流执行,以便通过等待文件I/O来阻止一个线程,而其他人可以工作",但没有限制。

有用性限制 - 有一个开销,切换线程会导致频繁的缓存无效,但没有硬性限制。

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

#include <iostream>
#include <thread>
int main(){
    std::cout << std::thread::hardware_concurrency() << std::endl;
    return 0;
}