Hola, Porqué si el Thread Pool crea múltiples hilos que se ejecutan de forma asíncrona JS no es un lenguaje multithread?

Cesar Guzman

Cesar Guzman

Pregunta
studenthace 4 años

Hola, Porqué si el Thread Pool crea múltiples hilos que se ejecutan de forma asíncrona JS no es un lenguaje multithread?

4 respuestas
para escribir tu comentario
    Hector Esau

    Hector Esau

    studenthace 4 años

    Alog que también te puede servir es que si el el funcionamiento principal es monohilo, por lo tanto para terminar una tarea tiene que ser secuencial, pero la clave y lo que hace rápido a javascript es que delega las tareas a otros lados, pero para empezarla y finalizarla tiene que pasar por el monohilo (event loop)

    Sebastián Gonzalez Quintero

    Sebastián Gonzalez Quintero

    studenthace 4 años

    El lenguaje Javascript en si es monohilo, es decir se ejecuta en un solo hilo. Que el lenguaje se ejecute en un solo hilo no quiere decir que su interprete no disponga de varios hilos, así que vamos por partes:

    Event Loop: Este por decirlo de alguna forma es el hilo principal. Aquí es donde se ejecuta el código Javascript.

    Thread Pool: Es una estrategia utilizada para disponer de varios hilos en cualquier momento. Estos hilos están todo el tiempo corriendo a la espera de ejecutar una tarea que es enviada desde el hilo principal.

    Desde Event Loop se envía una tarea hacia Thread Pool. Cuando Thread Pool completa alguna tarea devuelve un evento al Event Loop.

    NodeJS restringe el acceso a Thread Pool para simplificar el trabajo con hilos desde Javascript. Así que no permite acceder directamente a los hilos (bajo nivel) sino que expone sus librerías como Files, DB Ops, etc... (alto nivel). De esta forma desde Javascript todo parece monohilo mientras que es posible que NodeJS ejecute varios hilos de acuerdo a las instrucciones de Javascript.

    David Acosta

    David Acosta

    studenthace 4 años

    Técnicamente esos hilos del thread pool no se precisamente del lado de NodeJs. Lo que sucede es que Node usa una librería en C llamada Libuv la cual se encarga de ejecutar esos procesos en background.

    Alex Camacho

    Alex Camacho

    teacherhace 4 años

    Porque a pesar de que se creen así, entran a una cola en la que se van resolviendo uno por uno.

Curso de Node.js [Empieza Gratis]

Curso de Node.js [Empieza Gratis]

Descubre qué es Node.js, y por qué es tan potente. Si ya has trabajado con Node.js, vas a profundizar conocimientos sobre cómo funciona por debajo todo el código que ya has hecho.

Curso de Node.js [Empieza Gratis]

Curso de Node.js [Empieza Gratis]

Descubre qué es Node.js, y por qué es tan potente. Si ya has trabajado con Node.js, vas a profundizar conocimientos sobre cómo funciona por debajo todo el código que ya has hecho.