2009-10-20 48 views
20

所以我对这个术语有些困惑。为什么异步进程不叫同步?

每个人都将“异步”计算为在不同的线程上运行不同的进程,这给出了这些进程同时运行的错觉。

这不是异步一词的定义。

a⋅syn⋅chro⋅nous 
–adjective 
1. not occurring at the same time. 
2. (of a computer or other electrical machine) having each operation started only after the preceding operation is completed. 

我在这里不理解什么?

+4

我不知道。但我认为定义#2与程序员如何使用这个词完全相反是有趣的。 – 2009-10-20 18:59:23

+1

这就是为什么我通常使用Google:“define:* word *”来获得我的定义。你一次得到四五个或二十个定义。 – 2009-10-20 19:05:38

+1

我认为你对“异步”这个词的定义是错误的。 – 2011-04-10 09:58:27

回答

10

这意味着两个线程不同步运行,也就是说,它们都不在同一时间线上运行。

我认为这是一个计算机科学家对他们使用单词太聪明的例子。

同步,在这种情况下,将建议两个线程同时开始和结束。在这个意义上的异步意味着,两个线程都可以根据需要自由地启动,执行和结束。

9

“同步”一词意味着函数调用将与其他事件同步同步

异步意味着不会发生这种同步。

看起来你在那里的定义应该是“并发”的定义,或者其他的东西。该定义看起来不正确。


PS:

这里是维基定义:

asynchronous

  1. 不同步;发生在不同的时间。
  2. (计算,请求或消息的)允许客户端在处理期间继续。

这恰好是确切相反的您发布的内容。

+0

我从我的定义: http://dictionary.reference.com/browse/Asynchronous – Balk 2009-10-20 19:00:30

+0

我发现了定义Balk张贴在这里:http://dictionary.reference.com/browse/asynchronous似乎这个词的定义根据具体情况而变化很大。 – 2009-10-20 19:01:57

+1

我并不是说你做到了,我只是说这两个来源的定义#2是直接反对的。 – 2009-10-20 19:02:37

2

我猜想那是因为他们不同步;)

换句话说...如果一个进程被终止,死亡,或在等待着什么,其他的将进行

1

你的第二个清晰度在这里更有帮助:

2. [...] having each operation started only after the preceding operation is completed. 

当您进行异步调用时,该调用可能无法在下一个操作开始前完成。当这个呼叫是同步的,它会是。

+1

您的描述是正确的,但它与该定义所说的相反...... – Guffa 2009-10-20 19:27:39

0

这确实意味着异步事件独立于其他事件发生,而同步事件将依赖于其他事件发生。

5

我认为该术语首次用于同步和异步通信。同步意味着两个通信部分具有一个共同的时钟信号,因此它们并行运行。异步通信取而代之的是一个准备就绪的信号,因此其中一部分要求数据并在可用时获取信号。

该条款随后适用于流程,但由于存在明显差异,这些术语的某些方面的工作方式不同。对于单线程进程来说,请求要做的事情的自然方式是进行同步调用,将控制权转移给子进程,然后在完成时返回控制权,并继续进行。

异步调用的工作方式与异步通信的工作方式相同,您发送要执行的内容的请求,执行此操作的进程会在完成时返回信号。术语使用的区别在于,对于进程而言,进程在异步处理中是并行运行的,而对于通信则是并行运行的同步通信。

因此,“计算机或电机”对于术语的正确定义来说的确是一个太宽的范围,因为它对于不同的技术以不同的方式使用。

+2

对于时钟信号为+1。这确实是这个词来自何处。 – 2010-08-20 16:42:33

+0

+1这是最有用的答案。这清除了我相当长时间以来的困惑。谢谢:) – ajay 2014-01-26 20:14:55

2

我认为这里的倾斜与这里的大多数答案略有不同。

异步是指“不在同一时间发生”。

在穿线的具体情况下:

  • 同步的意思是“现在执行该代码”。
  • 异步的意思是“排队在不同的线程将在某个不确定的时间在未来执行这项工作”

这通常让你“做两件事情,在一次”,因为喜欢的原因:

  • 一个线程只是在等待(例如,用于数据到串行端口到达),所以睡着
  • 你有多个处理器,所以两个线程可以同时运行。

但是,即使有128个处理器内核,情况也是一样的:工作将在“将来某个时间”(如果可能是不久的将来)而不是“现在”执行。

0

这就像:易燃,易燃性(这意味着同样的事情)

严重 - 它只是对英语的那些怪癖之一。它没有任何意义。你可以试着去解释它,但是要证明相反的意思是很容易的。

+1

什么国家! – 2011-01-06 05:18:01