Рубин имеет Java эквивалентным из, синхронизируют ключевое слово? Я использую 1.9.1, и я не вполне вижу изящный способ сделать это.
В нем нет ключевого слова synchronize
, но вы можете получить нечто очень похожее с помощью класса Monitor
. Вот пример из книги Programming Ruby 1.8:
require 'monitor'
class Counter < Monitor
attr_reader :count
def initialize
@count = 0
super
end
def tick
synchronize do
@count += 1
end
end
end
c = Counter.new
t1 = Thread.new { 100_000.times { c.tick } }
t2 = Thread.new { 100_000.times { c.tick } }
t1.join; t2.join
c.count → 200000