1
我想创建主线程红宝石无限循环具有无限循环,同时具有在产生的线程无限循环,但这不起作用:创造主线程无限循环而产生的线程
my_threads = []
for i in 1..2 do
puts "Creating thread #{i}"
my_threads << Thread.new(i) do |j|
loop do
sleep(1)
puts "work in #{Thread.current.object_id}"
end
end
end
my_threads.each do |t|
t.join
end
loop do
sleep(1)
puts 'work in main thread'
end
我需要它,因为在我的Rails应用这种方式,我不能使用ActiveRecord对象线程内,如下解释:
,所以我需要一个运行循环的主线程,同时具有催生线程运行他们的o wn同时循环。
但是上面的代码做到这一点:
work in 79515570work in 79515510
work in 79515510work in 79515570
work in 79515510work in 79515570
work in 79515570work in 79515510
work in 79515570work in 79515510
work in 79515570
work in 79515510
work in 79515570
work in 79515510
work in 79515570work in 79515510
它永远不会到达主线程循环。我怎样才能做到这一点?
所以对主题的新调用自动开始在线程的工作? – JohnMerlino
另外Thread :: abort_on_exception = true应该默认启用 – JohnMerlino
@JohnMerlino - 是的,一旦线程初始化就会启动。 –