加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 多线程是否等于CPU?

发布时间:2020-12-16 00:17:50 所属栏目:百科 来源:网络整理
导读:我有一小部分我想要处理的大型文件,这让我想到了…… 在C#中,我正在考虑使用TPL的Parallel.ForEach来利用现代多核CPU,但我的问题更多的是一个假设的角色; 在实用中使用多线程是否意味着并行加载文件需要更长的时间(使用尽可能多的CPU内核),而不是按顺序加载
我有一小部分我想要处理的大型文件,这让我想到了……

在C#中,我正在考虑使用TPL的Parallel.ForEach来利用现代多核CPU,但我的问题更多的是一个假设的角色;

在实用中使用多线程是否意味着并行加载文件需要更长的时间(使用尽可能多的CPU内核),而不是按顺序加载每个文件(但可能使用的CPU利用率较低)?

或以另一种方式(:

多线程有什么意义?更多任务并行但速度较慢,而不是一次将所有计算资源集中在一项任务上?

解决方法

你问过多个问题,所以我把我的回答分解为多个答案:

>多线程可能对加载速度没有影响,具体取决于加载过程中的瓶颈.如果您从磁盘或数据库加载大量数据,I / O可能是您的限制因素.另一方面,如果“加载”涉及使用某些数据执行大量CPU工作,则可能会因使用多线程而加快速度.>一般来说,您无法将“所有计算资源都集中在一项任务上”.一些多核处理器能够超频单个内核以换取禁用其他内核,但这种速度提升并不等于使用多线程/多处理充分利用所有内核所带来的潜在性能优势.换句话说,它是不对称的 – 如果你有一个4核1Ghz CPU,它将无法将单个核心一直超频到4ghz以换取禁用其他核心.事实上,这就是这个行业首先走向多核的原因 – 至少目前我们已经达到了制造单CPU运行速度的限制,所以我们已经走了添加更多CPU的道路.>多线程有两个原因.首先,您希望任务同时运行,因为两者都希望能够同时发生 – 例如你希望你的GUI在进行其他工作时继续响应点击或键盘按下(事件循环是实现此目的的另一种方式).第二是利用多个内核来提升性能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读