同步 - 异步阻塞,非阻塞I / O.

时间:2017-10-25 08:54:40

标签: node.js blocking nonblocking

问题在于对这些术语的解释。 这些是真还是假:

  1. 阻止I / O ==同步非阻塞I / O?
  2. 非阻塞I / O ==异步非阻塞I / O ==异步阻塞I / O?
  3. 由于对Blocking vs Non-Blocking的解释,我感到很困惑:

      

    Node.js标准库中的所有I / O方法都提供   异步版本,非阻塞,并接受回调   功能

    据此,有Sync Non-BlockingAsync Non-Blocking 您能说出(Non-Blocking || Sync Non-Blocking)Async Non-Blocking之间的区别吗?

1 个答案:

答案 0 :(得分:0)

没有"同步非阻塞"功能。链接文章中最重要的一句是:

  

阻塞方法同步执行,非阻塞方法异步执行。

这就是说的全部。

I / O可以是很多东西,比如用户输入或从文件中读取。用户输入是描述它的最佳方式:

同步函数将停止所有其他代码的执行,等待用户输入......

伪代码:

while(clicked==false){
    clicked=check_for_user_click()
}
do_something_with_input()
do_everything_else()

这里do_something_else只会在用户点击后运行。

asyncronous函数根本不会停止。

伪代码:

while(clicked==false){
    clicked=check_for_user_click()
    do_everything_else()
}
do_something_with_input()

这里将在每次检查用户输入之间调用do_everything_else()。