6
Wie würde ich einen separaten Thread innerhalb eines anderen Threads starten und stoppen?Starten und Stoppen von Ruby-Threads
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, das macht viel mehr Sinn, danke. Obwohl ich mich gefragt habe, was der erste mag, war "STDOUT.sync = true". Ich werde es herausfinden. – RyanScottLewis
Hm, es scheint, die 'gets'-Methode stoppt die Ausführung von loop_a. Was ist damit los? – RyanScottLewis
Mit dem obigen Code scheint es kein Problem zu geben. Ich kann das ohne Probleme ausführen. Ich vermute, was Sie in loop_a getan haben (das # Do-Zeug), könnte loop_a anhalten. – bryantsai