首页 > 解决方案 > 如何控制线程之间的运行顺序?

问题描述

以下是处理数据和打印结果的结构。期间会打印出一些内容process_records,所以我希望所有线程的ensure部分都可以在程序运行的最后与 order一起打印出来,比如第一个线程的确保部分应该先打印出来。我怎么能在不print_report搬出的情况下做到这一点Thread.new do?谢谢

lock = Mutex.new()
thread_num.times do |i|
    threads << Thread.new do
             records = lock.synchronize{db_proxy.query(account_id)}

             result1 = process_records(records) 
             result2 = process_records2(records)
             result3 = process_records3(records)
             ensure
                 print_report(result1, result2, result3)
             end
        }        
    end
end

标签: rubymultithreadingsynchronizationmutex

解决方案


推荐阅读