当与编程相关时,我对术语异步感到困惑.在编程术语中,它似乎意味着与词典中定义的相反.例如,同步一词意味着:
同时发生; 时间一致; 同期; 同时.
以相同的速度和完全一起进行; 一起重复.
然而,维基百科说:
"在编程中,异步事件是独立于主程序流的事件.异步动作是在非阻塞方案中执行的动作,允许主程序流继续处理."
是不是"非阻塞"并且允许"主程序流程继续处理"的同步或"同时发生"?似乎同步一词表示"非阻塞"和异步,"阻塞".为什么这些术语在与编程相关时似乎反向使用,或者它与我不理解的低级计算有关?
当我使用同步AJAX调用时,我会执行以下操作...
$.ajax({
url: somefile.php,
async: false,
success: {
...code that gets run on success...
}
});
...code that gets run after the ajax-success code runs...
Run Code Online (Sandbox Code Playgroud)
有了这个,它实际上在运行脚本的其余部分之前等待响应,这是一个阻塞动作.那么为什么这个被称为同步,当它与任何其他过程不同步时,实际上却相反?
我需要编写一个正则表达式,它将匹配字符串中的所有内容,除非它中包含某个单词.以此字符串为例:
http://12.34.567.890/sqlbuddy
Run Code Online (Sandbox Code Playgroud)
匹配所有内容的表达式是:
^.*$
Run Code Online (Sandbox Code Playgroud)
... 如果它包含单词"sqlbuddy" ,则需要对其进行修改以使其与字符串完全匹配.我认为负面的前瞻会做到这一点,但那对我不起作用.
例如,我试过这个,这不起作用:
^(?!sqlbuddy).*$
Run Code Online (Sandbox Code Playgroud)
我该怎么修改呢?