1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/benchmark/bm_vm3_thread_mutex1.rb
ko1 3c9187a2ad * benchmark/bm_vm3_thread_mutex.rb: remove it.
* benchmark/bm_vm3_thread_mutex[1-3].rb: added 3 benchmarks.
  1: one thread with one mutex (no contention).
  2: two threads with one mutex (contention).
  3: 1000 threads with one mutex (huge number of contention)
  Abobe removed benchmark was type 3.
  Therefore, this commit adds type 1 and 2 benchmark.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-12 04:38:50 +00:00

21 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