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

253
Vistas
Hilo de rubí. ¿Por qué "#Únete"?

Esto puede parecer una pregunta tonta. pero por favor guíame.

https://apidock.com/ruby/Thread/join

 a = Thread.new { print "a"; } a.join(5)

Como vemos aquí, el método #join es básicamente, "Oye OS, ejecuta este bloque de código (subproceso), dentro de 5 segundos".

pero ¿de dónde viene este nombre? join ¿Por qué no simplemente run ?
en Java, parece un significado ligeramente diferente.

EDITAR

Descubrí que en realidad #join está bloqueando la llamada. Significa que comprueba 5 segundos después, si el hilo se ha terminado o no. Si finished , mata el hilo. (X) . join devolverá el objeto Thread. que ya está Muerto.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No exactamente. join es el nombre tradicional de la operación que espera a que se complete un subproceso. La ejecución se "divide" cuando inicia un hilo y se "une" cuando un padre se da cuenta de la finalización de un hilo.

a.join(5) no dice "ejecutar este hilo dentro de 5 segundos", dice "esperar hasta 5 segundos para que termine este hilo". Comienza a ejecutarse tan pronto como lo crea.

over 4 years ago · Santiago Trujillo Denunciar

0

Thread.new inicia el hilo. Puedes hacer una prueba sencilla:

 Thread.new { puts "started" }; sleep 1 puts "done"

La impresión started de inmediato, luego esperará un segundo y luego done imprimirá.

O ejecute Thread.new en irb y vea cómo se ejecuta inmediatamente.

Necesita a.join porque sin él, el programa principal podría salir y eliminar los subprocesos antes de que se complete el subproceso. Por ejemplo...

 Thread.new do puts "start" # Simulate the thread doing some work sleep 1 puts "end" end sleep 0.5

Esto imprimirá el start y eso es todo. El programa principal terminará y matará el hilo. El proceso principal debe esperar hasta que el subproceso se complete conjoin .

Se llama "unirse" porque está uniendo el hilo nuevamente con el hilo principal que lo generó.

over 4 years ago · Santiago Trujillo Denunciar
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