Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

231
Vistas
¿Cómo se ejecutan miles de setTimeout() y esperan simultáneamente en Javascript?

Escribí una aplicación cliente-servidor de javascript donde envío 1000 solicitudes HTTP a mi servidor (escuchando en localhost: 5000) y espero la respuesta para cada una:

 const SendRequest = async () => { const res = await fetch("http://localhost:5000") return res } for(let i=0;i<1000;i++) { SendRequest().then(res => console.log(res.status)) console.log("request sent") }

Cuando ejecuté el código anterior usando nodejs, se registraron 1000 mensajes de "solicitud enviada" en la consola y luego, después de un tiempo, vi que se registraron 1000 respuestas del servidor en rápida sucesión.

Según tengo entendido, Javascript tiene un solo subproceso, pero nodejs puede usar otros subprocesos para manejar cosas como setTimeout y esperar una respuesta HTTP (ref: ¿Qué diablos es el bucle de eventos de todos modos? | Philip Roberts | JSConf EU ). Mi sistema tiene 6 núcleos y 12 subprocesos. Mi pregunta es: ¿cómo puede esperar miles de tales operaciones a la vez, incluso si usa los 12 subprocesos?

Aquí está el código del lado del servidor:

 app.get("/", async (req, res) => { console.log("Connection established"); setTimeout(() => { console.log("Sending res") res.send("Hello from the server") }, 5000) //send response after waiting for 5 seconds })

Aquí, vi "Conexión establecida" registrada 1000 veces cuando envié las solicitudes del cliente y 5 segundos después, "Enviando res" se registró 1000 veces en cuestión de milisegundos y todas las 1000 respuestas enviadas a la vez que fueron recibidas por el cliente. Nuevamente, mi pregunta es similar, ¿cómo se ejecutaron simultáneamente estos 1000 setTimeouts, cada uno de 5 segundos, incluso si usamos todos los subprocesos en el sistema?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda