¿Todos los trabajadores web de JavaScript para una página operan en un solo hilo separado de la página principal, o cada trabajador web tiene su propio hilo? Para contexto: tengo una gran cantidad de datos que actualmente está siendo procesado por un webworker. ¿Sería más rápido dividirlo entre 10 trabajadores web o todos usarán el mismo hilo?
Eso no está definido por el estándar :
Este estándar no define el mecanismo preciso por el cual esto se logra, ya sea multitarea cooperativa de tiempo compartido, fibras, hilos, procesos, utilizando diferentes hiperhilos, núcleos, CPU, máquinas, etc.
Incluso si cada trabajador web tiene su propio subproceso, la CPU no puede ejecutarlos en paralelo, si la cantidad de núcleos es menor que la cantidad de trabajadores web. También otros hilos están usando la CPU.
Los trabajadores web no se han creado exactamente para su escenario. Son más una cosa de 'no bloquear la interfaz de usuario'. Véase también esta declaración de la norma:
Los trabajadores (como se denominan aquí estos scripts de fondo) son relativamente pesados y no están destinados a ser utilizados en grandes cantidades.
Lo único sensato que puede hacer es probar qué funciona mejor (con todos los navegadores relevantes). Puede verificar self.navigator.hardwareConcurrency (ver aquí ) en su código para decidir cuántos trabajadores debe generar.