1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
require 'test/unit' class TestThread < Test::Unit::TestCase def test_mutex_synchronize m = Mutex.new r = 0 max = 100 (1..max).map{ Thread.new{ i=0 while i<max*max i+=1 m.synchronize{ r += 1 } end } }.each{|e| e.join } assert_equal(max * max * max, r) end end