【发布时间】:2011-10-31 05:06:02
【问题描述】:
当涉及到编程时,我对异步这个术语感到困惑。它在编程术语中的含义似乎与字典中的定义相反。例如,同步这个词的意思是:
同时发生;时间一致;同时代的; 同时。
以相同的速度并且完全一起进行;一起重复。
然而,维基百科说:
“在编程中,异步事件是那些发生的事件 独立于主程序流程。异步动作是 以非阻塞方案执行的操作,允许主程序 流继续处理。”
“非阻塞”和允许“主程序流继续处理”的东西不会被同步或“同时发生”吗?似乎同步一词暗示“非阻塞”和异步“阻塞”。为什么这些术语在与编程相关时似乎被反向使用,或者它与我不理解的低级计算有关?
当我使用同步 AJAX 调用时,我会执行以下操作...
$.ajax({
url: somefile.php,
async: false,
success: {
...code that gets run on success...
}
});
...code that gets run after the ajax-success code runs...
这样,它实际上在运行脚本的其余部分之前等待响应,这是一个阻塞操作。那么为什么这被称为同步,当它不与任何其他进程同步时,实际上相反呢?
【问题讨论】:
标签: jquery asynchronous definition synchronous