6
¿Cómo puedo iniciar y detener un subproceso independiente desde otro subproceso?Iniciar y detener subprocesos de ruby
loop_a_stopped = true
loop_a = Thread.new do
loop do
Thread.stop if loop_a_stopped
# Do stuff
sleep 3
end
end
loop_b = Thread.new do
loop do
response = ask("> ")
case response.strip.downcase
when "start"
loop_a_stopped = false
loop_a.run
when "stop"
loop_a_stopped = true
when "exit"
break
end
end
end
loop_a.join
loop_b.join
Ahh, esto tiene mucho más sentido, gracias. Aunque, me preguntaba cómo era la primera, 'STDOUT.sync = true '. Lo resolveré sin embargo. – RyanScottLewis
Hm, parece que el método 'gets' evita que loop_a se ejecute. ¿Qué pasa con esto? – RyanScottLewis
Parece que no hay problema con el código anterior. Puedo ejecutar esto sin problema. Sospecho que lo que hiciste en loop_a (el # Do stuff) podría detener loop_a. – bryantsai