什么是异步编程?

gam*_*ame 0 c# multithreading asynchronous

我最近一直在尝试了解线程、线程安全,并遇到了一个非常大的术语“异步编程”。这完全让我陷入了困惑,想知道是否有人可以解答我对此的一些疑问,因为它确实让我感到困惑。

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

如果你谷歌一下,它实际上确实是这样说的,但现在我了解到异步编程就是同时发生两件事,至少在我看来是这样。

我一直在观看有关这一切的 YouTube 视频系列,他们解释说,编程中的异步就是在不影响主 UI 线程的情况下运行多个事物。

现在,我了解线程,您创建一个新线程并将其添加到线程池中,线程的运行取决于计算机上的核心数量,并且它们都运行很短的时间,以创建所有线程都并行运行的错觉。

让我困惑的是异步编程,现在我被告知创建一个新任务是异步编程,异步编程是否仅仅意味着您在新线程上进行编码,因为到目前为止,两个操作同时运行的唯一方法时间是当它们在不包括主线程(UI 线程)的其他 2 个线程上运行时。现在我想知道还有什么使线程..是它在自己的线程上运行这一事实使其成为异步编程的一部分还是我错过了其中的很大一部分?

谁能帮我解决这个问题吗?

War*_*Dew 7

“异步编程”并不完全意味着“不同时发生”;相反,它意味着“不同步”,从编程的角度来看,这意味着您不能假设两个异步事物之间发生的事情的顺序。

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