2017-10-25 18 views
0

Die Frage betrifft die Erklärung dieser Begriffe. Sind diese richtig oder falsch:Sync-Async-Blockierung, nicht blockierende E/A

  1. Blockieren von E/A == Synchronisieren von nicht blockierenden E/A?
  2. Nicht blockierende E/A == Asynchrone nicht blockierende E/A == Asynchrone blockierende E/A?

Ich bin wegen dieser Erklärung Blocking vs Non-Blocking verwirrt:

Alle der E/A-Methoden in der Node.js Standardbibliothek bieten asynchrone Versionen, die nicht blockierend sind, und akzeptieren Rückruf Funktionen

nach diesem gibt es Sync Non-Blocking und Async Non-Blocking Würden Sie sagen, der Unterschied zwischen (Non-Blocking || Sync Non-Blocking) und Async Non-Blocking?

Antwort

0

Es gibt keine "sync non-blocking" -Funktion. Der wichtigste Satz im verknüpften Artikel lautet:

Blockierungsmethoden werden synchron ausgeführt und nicht blockierende Methoden werden asynchron ausgeführt.

das ist alles, was es zu sagen gibt.

I/O könnte viele Dinge wie Benutzereingaben oder Lesen von einer Datei sein. Benutzereingabe ist der beste Weg, um es zu beschreiben:

A syncronous Funktion würde alle Ausführung von jedem anderen Code stoppen, für eine Benutzereingabe warten ...

Pseudo-Code:

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

hier würde do_something_else nur Führen Sie nach dem Klicken des Benutzers aus.

asyncronous Funktion würde überhaupt nicht aufhören.

Pseudo-Code:

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

hier do_everything_else() wird zwischen jedem Check für eine Benutzereingabe aufgerufen werden.