I fibre del nodo sono bloccati?
-
13-12-2019 - |
Domanda
Se si esegue un'attività intensiva I / O in Node.js, come alcune operazioni del database ASYNC, utilizzando Node-fibre , è bloccato?
Non ho ancora usato Node-Fibers ancora B / C sembra che, se utilizzato nel codice che elabora una richiesta HTTP in cui è eseguito un codice I / O di normalmente non bloccante, impedirebbe oraAltre richieste di accesso alla tua app.E 'vero o no?Un piccolo dettaglio sul perché è vero / falso sarebbe molto utile anche.
Soluzione
Le fibre consentono al programmatore Scrivi il codice JavaScript Dichiarazione di blocco "Thread-Like".Ma la sua implementazione non è bloccata, il codice è equivalente al codice dell'evento Node.js Async.L'implementazione di Laverdets mette in pausa l'esecuzione della fibra ad un certo punto, come il modello di Async Node.js, e può essere ripreso in un secondo momento.
Le fibre sono più di zucchero sintattico, non cambiano il modello NODE.JS ASYNC.L'unica differenza è che le fibre creano diverse pile di esecuzione (se sono corretto), che è un leggero sovraccarico al normale codice NODEJS ASYNC.