首页 > 解决方案 > System.Threading 和 CPU 内核中的线程数

问题描述

使用创建的线程数是否System.Threading取决于 CPU 中的物理线程?两者之间是否存在直接的一对一关系?

假设我创建如下 10 个线程,而 CPU 有 4 个内核和 8 个线程,这是否意味着只有 8 个线程会同时运行,而对于其他 2 个线程,CPU 会进行任务切换?

Thread[] threads = new Thread[10];

标签: c#multithreadingcpucore

解决方案


不要仅仅为了等待 I/O 完成而创建线程。该async/await模式将通过等待 I/O 完成来帮助您,同时释放这些线程来做其他有用的工作。

要记住的另一件事是,如果您同时调用其他服务 10 次(或 100 或 1000 次),如果该服务也在等待 I/O,那么您可能仍然需要 16 分钟完成你的任务。


推荐阅读