与编程有关的时候,我被异步语言所困惑。这似乎意味着在编程术语中与在字典中定义的相反。例如,同步词表示:
occurring at the same time; coinciding in time; contemporaneous;
simultaneous.going on at the same rate and exactly together; recurring together.
然而,维基百科说:
“In programming,asynchronous events are those occurring
independently of the main program flow. Asynchronous actions are
actions executed in a non-blocking scheme,allowing the main program
flow to continue processing.”
“不阻塞”是否允许“主程序流程继续处理”不会同步或“同时发生”?似乎术语同步表示“非阻塞”和异步“阻塞”。为什么这些术语似乎在与编程有关的时候反过来使用,还是与我不明白的低级计算有关?
当我使用同步AJAX调用时,我执行以下操作
$.ajax({ url: somefile.PHP,async: false,success: { ...code that gets run on success... } }); ...code that gets run after the ajax-success code runs...
这样,它在运行脚本的其余部分之前实际上等待响应,这是一个阻止操作。那么为什么这被称为同步,当它不与任何其他进程同步,但实际上是相反的?