‫Instructor: Entonces, recuerde que en la
‫última conferencia, hablamos sobre la arquitectura Node,
‫donde dos partes fundamentales
‫son el grupo de subprocesos y el bucle de eventos.
‫Entonces, en esta conferencia, aprenderá todo
‫sobre los hilos y un grupo de hilos.
‫Y en
‫el siguiente, nos sumergiremos profundamente en el ciclo del evento.
‫Entonces empecemos.
‫Entonces, en primer lugar, cuando usamos Node en una computadora,
‫significa que hay un proceso de Node
‫ejecutándose en esa computadora.
‫Y el proceso es solo un programa en ejecución.
‫Y ya aprendimos que Node. js es
‫básicamente un programa C ++, que por
‫lo tanto iniciará un proceso cuando se esté ejecutando.
‫Esto es importante porque en
‫Node, en realidad tenemos acceso a una variable de
‫proceso, que usaremos más adelante en este curso.
‫Ahora en ese proceso, Node. js se
‫ejecuta en un solo hilo.
‫Y un hilo es básicamente una secuencia de instrucciones.
‫Pero no es importante comprender en
‫profundidad qué es un hilo o un proceso.
‫Eso es más sobre ciencias de la computación.
‫Imagínese un hilo como una caja donde
‫nuestro código se ejecuta en el procesador de una computadora.
‫Ahora, lo que es importante entender
‫aquí es el hecho de que Node se ejecuta en un solo
‫hilo, lo que facilita el bloqueo de aplicaciones de Node.
‫Y esto es algo de lo que hablamos antes, de hecho.
‫Pero es algo muy, muy importante de recordar porque esta
‫es una de las características
‫únicas que Node. js trae a la mesa.
‫Entonces, nuevamente, si ejecuta su aplicación Node, se
‫ejecutará en un solo hilo.
‫No importa si tiene 10 usuarios o 10
‫millones de usuarios accediendo a su aplicación al mismo tiempo.
‫Por lo tanto, debe tener
‫mucho cuidado de no bloquear ese hilo.
‫Y, por supuesto, nos
‫encargaremos de eso durante todo el proyecto en este curso.
‫Continuando, ahora entendamos rápidamente
‫exactamente qué sucede en un solo hilo
‫cuando inicia su aplicación Node.
‫Entonces, cuando se inicializa el programa, se ejecuta todo el
‫código de nivel superior, lo que significa todo el código
‫que no está dentro de
‫ninguna función de devolución de llamada.
‫Además, se requieren todos los módulos que su aplicación necesita y todas las
‫devoluciones de llamada están registradas, al igual
‫que las que usamos
‫para nuestro servidor HTP en la aplicación Node Farm.
‫¿Recuérdalo?
‫Luego, después de todo eso, el bucle de eventos finalmente comienza a ejecutarse.
‫Y nuevamente, más sobre el evento en bucle en el siguiente video.
‫Lo que necesita saber por ahora es que el ciclo de
‫eventos es donde se realiza la mayor parte del trabajo en su aplicación.
‫Entonces, es realmente el corazón de toda la arquitectura de Node.
‫Pero aquí está el truco, algunas tareas son demasiado pesadas.
‫Son demasiado costosos para ejecutarse en el bucle de eventos
‫porque luego bloquearían el hilo único.
‫Y ahí es donde entra el grupo de subprocesos, que al
‫igual que el bucle de eventos,
‫se proporciona a Node. js por la biblioteca
‫libuv de la que hablamos antes.
‫Entonces, el grupo de subprocesos nos da cuatro
‫subprocesos adicionales que están completamente separados del subproceso principal único.
‫Y de hecho podemos configurarlo hasta 128 subprocesos.
‫Pero, por lo general, estos cuatro son suficientes.
‫Entonces, estos hilos juntos formaron un grupo de hilos.
‫Y el bucle de eventos
‫puede descargar automáticamente tareas pesadas al grupo de subprocesos.
‫Y todo esto sucede automáticamente detrás de escena.
‫No somos nosotros los desarrolladores quienes decidimos
‫qué va al grupo de subprocesos y qué no.
‫Ahora, las tareas costosas que se descargan son
‫todas las operaciones relacionadas con archivos, todo lo relacionado con
‫la criptografía, como el almacenamiento en caché de contraseñas, luego
‫todo lo relacionado con la compresión y también las búsquedas de
‫DNS, que básicamente hacen coincidir
‫los dominios web con sus correspondientes direcciones IP reales.
‫Entonces, esto es lo
‫que bloquearía más fácilmente el hilo principal.
‫Y así, Node se encarga de descargarlos
‫automáticamente en el grupo de
‫subprocesos, donde no bloquean nuestro bucle de eventos.
‫Y eso es lo más
‫importante que quiero que retengas de este video.
‫Entonces, sigamos adelante y hablemos sobre el ciclo de eventos en sí.