Threads Ruby

require 'monitor' 
class Counter 
    attr_reader :count 
    def initialize 
        @count = 0 
    end 
    def tick 
        @count += 1 
    end 
end 
c = Counter.new 
lock = Monitor.new 
t1 = Thread.new { 10000.times { lock.synchronize { c.tick } } } 
t2 = Thread.new { 10000.times { lock.synchronize { c.tick } } } 
t1.join; t2.join 
c.count # 20000