【发布时间】:2017-12-03 02:46:33
【问题描述】:
我最近一直在尝试学习线程、线程安全,并遇到了非常大的术语“异步编程”。这完全让我感到困惑,想知道是否有人可以澄清我对此的一些问题,因为它真的让我感到困惑。
在此之前,我认为“异步”的定义是不会同时发生,而同时发生的术语是“同步”。
如果你用谷歌搜索,它实际上是这么说的,但现在我学习异步编程就是同时发生两件事,至少在我看来是这样。
我一直在观看有关这一切的 youtube 视频系列,他们解释说,异步编程就是在不影响主 UI 线程的情况下运行多个事物。
现在,我了解线程,您创建一个新线程并将其添加到线程池中,线程的运行取决于您计算机上的内核数量,并且它们都运行了很短的时间,创造所有线程并行运行的错觉。
让我感到困惑的是异步编程,现在我被告知创建一个新任务是异步编程,异步编程是否只是意味着你在新线程上编码,因为到目前为止只有两个操作正在运行同时是当它们在不包括主线程(UI 线程)的 2 个其他线程上运行时。现在我想知道还有什么使线程.. 是它在自己的线程上运行使其成为异步编程的一部分,还是我错过了一大块?
谁能帮我解决这个问题?
【问题讨论】:
-
What is the difference between asynchronous programming and multithreading? - 这个你可能会比我的其他链接更喜欢
-
单词前面的字母
'a'修改成表示“没有”。例如,“不道德”的意思是“缺乏道德感;不关心某事的对错”。所以“异步”意味着没有被同步。事件之间没有特定的顺序或相互关系。 -
另外,完全可以编写只在单线程上运行的异步代码。多线程是异步的,但异步不是多线程。
标签: c# multithreading asynchronous