【发布时间】:2021-01-01 03:31:50
【问题描述】:
我知道并行和并发之间的区别。并发意味着处理器以非常快的速度在线程之间切换,这使得它看起来像是在并行运行,因此即使使用单核处理器,您也可以实现同时发生的事情。而并行性意味着每个线程都在不同的内核上运行。
.NET 使用并行还是并发?什么是流量? cpu 是否检查线程是否多于内核,如果是这样,是否会导致内核具有多个线程,从而使程序并行和并发?
如果我使用任务并行库会发生什么?名字是平行的,是平行还是两者的结合?
这个主题对我来说不是很清楚,我一直在怀疑,不知道这一切是如何运作的。
【问题讨论】:
-
您在哪里阅读了并行性和并发性的定义?
-
您对 C# 有多少经验?你用过异步/等待吗?你用过
Task.Run吗? -
基本上并行是并发的一个子集(任何并行的东西也是并发的,但有些东西可以并发而不是并行的)
-
@mjwills 我对 C# 有一些经验,是的。我也知道如何使用 async/await。但我想真正了解幕后发生的事情。我也使用过Task.Run。它根据我的理解创建了一个线程,任务调度程序完成其余的工作。
标签: c# multithreading concurrency parallel-processing threadpool