c# - System.Threading 和 CPU 内核中的线程数
问题描述
使用创建的线程数是否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 分钟完成你的任务。
推荐阅读
- unity3d - 让物理更准确
- gcc - Caffe 构建给出 GCC 链接错误“在制作共享对象时无法使用。;使用 -fPIC 重新编译”
- node.js - Node.js crypto.publicEncrypt:'错误:错误:0906D06C:PEM 例程:PEM_read_bio:没有开始行'
- .net - 在 SQL Server 的视图中引用变量
- java - Springboot 不为 OffsetDateTime 字段赋值
- c# - 使用等于运算符对无穷大进行有效检查吗?
- ruby-on-rails - Puma 服务器因 ThreadError 停止(死锁;递归锁定)
- php - 我会在一页中使用 $ _POST 两次
- python - “apyori模块的RelationRecord对象”先验算法python
- php - 将 SEO 友好的 URL 重定向回具有正常链接的页面