rog*_*ack 20
可能是因为使用标准库"Queue"类很容易自己滚动.
q = Queue.new
3.times { Thread.new { while something = q.pop(true) rescue nil; ... }
Run Code Online (Sandbox Code Playgroud)
这是一个很好的问题 - 我可能会建议使用Ruby Core.
最有可能的原因是 ruby 没有“真正的”线程。它具有所谓的绿色线程。ruby 解释器负责调度执行线程,而不使用任何底层操作系统线程。这有效地使 Ruby 成为单线程。