System.Threading 和 CPU 内核中的线程数

System.Threading and number of threads in a CPU core

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

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

Thread[] threads = new Thread[10];

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

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