什么是异步编程?

时间:2017-12-03 02:46:33

标签: c# multithreading asynchronous

我最近一直在努力学习线程,线程安全以及非常大的术语“异步编程”。它让我感到困惑,并想知道是否有人可以澄清我对它的一些问题,因为它确实使我感到困惑。

在此之前,我认为“异步”的定义是不会同时发生的,并且同时发生的术语将是“同步的”。

如果你谷歌,它实际上说的确实如此,但现在我学习异步编程就是同时发生的两件事情,至少这对我来说是这样的。

我一直在观看关于它的youtube视频系列,他们解释说编程中的异步是关于运行多个事情而不影响主UI线程。

现在,我理解线程,你创建一个新线程并将它添加到线程池中,根据计算机上的内核数量运行线程,并且它们都运行的时间非常短,创建所有线程并行运行的错觉。

让我失望的是异步编程,现在我被告知创建一个新任务是异步编程,异步编程只是意味着你在新线程上编码,因为截至目前,2个操作正在运行的唯一方法同时它们正在运行2个其他线程,不包括主线程(UI线程)。现在我想知道还有什么让线程...它是在它自己的线程上运行它使它成为异步编程的一部分还是我错过了很大一部分?

任何人都可以为我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

"异步编程"并不意味着"没有同时发生&#34 ;;相反,它意味着"不同步",从编程的角度来看,这意味着你不能假设任何事情发生在两个异步事物之间的事情。

多个线程可以是异步的,但也可以是多个机器上的多个进程。