"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¡Javascript NO es de un solo subproceso!

¡Javascript NO es de un solo subproceso!

Publicado el 2024-07-31
Navegar:197

¡NO! No has aprendido mal que JavaScript es un lenguaje de un solo subproceso. Es un lenguaje de subproceso único, tiene acceso a un único subproceso principal para ejecutar el código. Entonces, cuando hablamos de programación sincrónica, estamos hablando de este hilo solitario que hace todo el trabajo pesado y ejecuta nuestro código.
Image description

Pero en realidad el motor V8 y Node.js usan una biblioteca C llamada libuv para obtener acceso a seis subprocesos adicionales. Dos de ellos se usan para realizar recolección de basura y el resto se usan para realizar tareas en segundo plano, como programación asincrónica.

Sí. Cuando decimos que el código es asincrónico o no bloqueante, lo que realmente sucede es que el código asincrónico se pasa a estos subprocesos adicionales con la devolución de llamada y el subproceso principal continúa haciendo su trabajo sin bloquear el resto del código.

Javascript is NOT single threaded!!
Cuando finaliza el código asíncrono, la función de devolución de llamada se envía a la cola de eventos con el error o los datos requeridos. Luego, el bucle de eventos lo empuja a la pila de llamadas y boom, obtenemos nuestro resultado, para entender esto con algo de código. Veamos el método readfile del módulo fs.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})

En el código anterior, el método readfile se pasa a los subprocesos en segundo plano. La lectura se realiza en segundo plano y, cuando finaliza, la devolución de llamada se envía a la cola de eventos con error o datos.

Javascript is NOT single threaded!!

Una vez en la pila de llamadas, se ejecuta la devolución de llamada y nos queda el error o los datos como salida.
Gracias por leer. Espero haber podido explicar sobre los medios de subproceso único en Javascript.

Declaración de liberación Este artículo se reproduce en: https://dev.to/roshankbadola/javascript-is-not-single-threaded-3b9a?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3