【问题标题】:What is asynchronous programming?什么是异步编程?
【发布时间】:2017-12-03 02:46:33
【问题描述】:

我最近一直在尝试学习线程、线程安全,并遇到了非常大的术语“异步编程”。这完全让我感到困惑,想知道是否有人可以澄清我对此的一些问题,因为它真的让我感到困惑。

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

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

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

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

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

谁能帮我解决这个问题?

【问题讨论】:

标签: c# multithreading asynchronous


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 2023-04-10
    • 2012-06-13
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2016-04-13
    相关资源
    最近更新 更多