Рубин имеет Java эквивалентным из, синхронизируют ключевое слово?

Рубин имеет Java эквивалентным из, синхронизируют ключевое слово? Я использую 1.9.1, и я не вполне вижу изящный способ сделать это.

12
задан Zombies 8 July 2010 в 22:26
поделиться

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
15
ответ дан 2 December 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: