ruby--ruby/benchmark/bm_vm3_thread_mutex1.rb

22 lines
298 B
Ruby

# one thread, one mutex (no contention)
require 'thread'
m = Mutex.new
r = 0
max = 1000
lmax = max * max
(1..1).map{
Thread.new{
i=0
while i<lmax
i+=1
m.synchronize{
r += 1
}
end
}
}.each{|e|
e.join
}
raise r.to_s if r != max * max