我希望这个脚本是test.rb:
t1 = Thread.new{1000.times {puts `echo 1`}}
t2 = Thread.new{1000.times {puts `echo 2`}}
t3 = Thread.new{1000.times {puts `echo 3`}}
t1.join
t2.join
t3.join
打印1000个1
,1000个2
和1000个3
(没有任何特定顺序)。
但我得到的结果如下:
root@1b3f36672857:/# ruby test.rb | sort | uniq -c
999 1
1000 2
1001 3
root@1b3f36672857:/# ruby test.rb | sort | uniq -c
1002 1
1000 2
997 3
我使用ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
。
您知道问题所在,以及是否有解决此问题的方法?