1
我有一个同步线程的问题,我不知道该怎么做,有人可以帮助我吗?Ruby多线程队列
所以,事情是我必须以某种特定的顺序启动线程。 订单如下:
线程1和线程7可以同时运行,其中一个线程完成后,下一个线程启动(即线程2或/和线程6),线程3 (五) ,最后一个,两个线程后3和5运行完毕后,去了最后一个,线程4
这是代码,我曾与开始,但我在队列实现莫名其妙地卡住。
MUTEX = Mutex.new
high_condition = ConditionVariable.new
low_condition = ConditionVariable.new
threads = []
7.times do |i|
threads << Thread.new{
MUTEX.synchronize {
Thread.current["number"] = i
you_shall_not_pass
}
}
end
threads.map(&:join)
def you_shall_not_pass
order = Thread.current["number"]
end
你能告诉我们更多关于预期的产出和你得到? – JunaidKirkire
欢迎来到StackOverflow!感谢您发布您的代码,但请在您的问题中多加一点说明:您有什么问题,您期望得到什么结果,以及[您尝试过什么](http://whathaveyoutried.com)到目前为止?通过[问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)将帮助我们更好地回答你的问题。谢谢! –
预期的输出可以是这样的: ' 线程1已经完成了它的任务 线程2已经完成了它的任务 Thread7已经完成了它的任务 Thread3已经完成了它的任务 Thread6已经完成了它的任务 Thread5已经完成了它的任务 Thread4有完成任务 ' 输出并不重要,问题是以适当的方式启动它们 –