此代碼是線程安全嗎?它似乎像它應該是因爲@myvar將永遠不會從多個線程分配(假設塊在< 1s完成)。這是紅寶石代碼線程安全嗎?
但是我是否需要擔心第二個塊在寫入時正在嘗試讀取@myvar的情況?
require 'rubygems'
require 'eventmachine'
@myvar = Time.now.to_i
EventMachine.run do
EventMachine.add_periodic_timer(1) do
EventMachine.defer do
@myvar = Time.now.to_i # some calculation and reassign
end
end
EventMachine.add_periodic_timer(0.5) do
puts @myvar
end
end
奇怪,現在SO不提供變體,在哪裏遷移問題。無法取消近距離投票( – Nakilon 2012-11-22 13:16:41
更多http://codereview.stackexchange.com/問題也許。 – Orbling 2012-11-22 16:27:59