c#中异步和并行编程之间的关系是什么?

Ala*_*ani 19 c# parallel-processing

我感到困惑,因为异步编程是一种异步执行代码块的方法,它调用方法而不等待结果.同样,并行编程是一种同时执行多个任务的方法,但所有这些任务都是异步执行的.所以想知道/混淆c#中这两种编程范式之间的关系是什么.

Not*_*ple 29

并行编程是一种我们使用多个线程更快地执行任务的技术.这意味着在现代多核架构上,我们可以利用更多可用资源来执行任务.

一个很好的例子是使用quicksort对列表进行排序.

通常,并行编程性能很重要,所有线程都在努力实现共同目标.

异步编程略有不同.这通常涉及更长时间运行的任务和可能等待某种外部刺激的任务.一个很好的例子是在后台线程中执行大型计算,以便UI保持响应.使用异步代码,我们通常会讨论以与主应用程序不同的速率执行的代码.


Tut*_*men 13

并行编程意味着执行操作同时使用多个线程,处理cpu和/或内核.

您所说的异步编程意味着触发请求并提供回调机制来接收响应.


diy*_*da_ 7

通常,异步意味着在可能的情况下执行,并行意味着通过创建新的执行线程立即执行.
这里的链接


Son*_*dor 5

最后:

并行编程用于CPU密集型解决方案。将异步编程用于IO绑定解决方案。