栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

选择用于并行处理数据的最佳线程数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择用于并行处理数据的最佳线程数

在实践中,可能很难找到最佳线程数,并且即使每次运行程序,该线程数也可能会有所不同。因此,从理论上讲,最佳线程数将是您计算机上具有的 内核
数。如果您的内核是“超线程”(如英特尔所说),则每个内核可以运行2个线程。然后,在这种情况下,最佳线程数是计算机上内核数的两倍。

Also, what causes the logic that the more threads allocated, i.e. more being able to be done at once, to be incorrect?

分配更多线程导致并发完成更多工作的原因是错误的,因为每个内核一次只能运行1个(如果内核为“超线程”,则为2个线程)。

因此,假设我有一台没有超线程的四核计算机。在这种情况下,我最多可以同时运行4个线程。因此,我的最大吞吐量应该通过4个线程来实现。假设我尝试在同一设置上运行8个线程。在这种情况下,内核将来回调度这些线程(通过上下文切换),并
阻塞 一个线程以使另一个线程运行。因此,最多可以同时运行4个线程的工作。

有关此的更多信息,使用Linux内核查找“上下文切换”将非常有帮助。这将为您提供有关此主题的所有信息。

另外,请注意,在称为“用户级线程”和“内核级线程”的线程之间存在差异。如果您进一步研究此主题,则这是一个重要的区别,但这不在此问题的范围内。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号