Para Javascript en el navegador y node.js, estoy tratando de entender la diferencia entre el grupo de subprocesos y la API web. Tanto el grupo de subprocesos como la API web permiten que Javascript maneje el comportamiento asíncrono, entonces, ¿en qué se diferencian? La API web después de completar la tarea envía la tarea a las colas desde donde la tarea se envía de vuelta a la pila de llamadas. ¿Cómo funcionan Thread Pool y NodeJS para imitar el comportamiento asíncrono?
Son completamente ajenos.
El bucle de eventos principal es donde se ejecuta la mayor parte del código JavaScript que escribe.
Las operaciones costosas (como el acceso a archivos o el código que ejecuta explícitamente en un trabajador) a menudo se realizan fuera del bucle de eventos principal. Esto libera el ciclo del evento principal para realizar otro trabajo .
Decimos que algo es asíncrono cuando se realiza fuera del ciclo de eventos principal porque no se realiza en secuencia con el resto del trabajo que realiza el ciclo de eventos principal.
El grupo de subprocesos es solo cómo la implementación particular de Node.js administra esas tareas asincrónicas.
Las API web son un conjunto de clases/funciones/etc. proporcionadas a los programas JavaScript que se ejecutan en navegadores que tienen una funcionalidad que a menudo se desea en los programas JS que están integrados en páginas web pero que no forman parte del lenguaje JavaScript.
por ejemplo, el constructor de objetos es una parte central de JavaScript, mientras que la API HTML DOM es una API web.
Algunas de esas características (como XMLHttpRequest) funcionan fuera del bucle de eventos principal, pero no es una característica intrínseca de las API web (por ejemplo, la API DOM no lo hace).
Node.js pone una funcionalidad equivalente en módulos integrados (como el módulo fs ).