如何控制线程之间的运行顺序?

时间:2019-03-01 08:12:16

标签: ruby multithreading synchronization mutex

以下是处理数据和打印结果的结构。某些内容将在process_records期间打印出来,因此我希望所有线程ensure的部分都可以在程序运行的最后以 order 的形式打印出来,例如第一个线程的确保零件应先打印出来。如何在不将print_reportThread.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

0 个答案:

没有答案