gpt4 book ai didi

ruby-on-rails - Rails 3 cattr_accessor 线程安全吗?

转载 作者:行者123 更新时间:2023-12-02 20:59:34 33 4
gpt4 key购买 nike

Rails 3 cattr_accessor 线程安全吗?

最佳答案

不,不是。只需快速浏览一下 cattr_reader 代码即可:

# File activesupport/lib/active_support/core_ext/class/attribute_accessors.rb, line 28
def cattr_reader(*syms)
options = syms.extract_options!
syms.each do |sym|
class_eval( unless defined? @@#{sym} @@#{sym} = nil end def self.#{sym} @@#{sym} end, __FILE__, __LINE__ + 1)

unless options[:instance_reader] == false
class_eval( def #{sym} @@#{sym} end, __FILE__, __LINE__ + 1)
end
end
end

您可以运行简单的测试:

class A
cattr_accessor :b
end

t1 = Thread.new { A.b = 1; sleep 1; p (A.b == 1); }
t2 = Thread.new { A.b = 2 }
t1.join
t2.join
# outputs "false"

这是一种使其线程安全工作的方法:http://rails-bestpractices.com/posts/2010/08/23/fetch-current-user-in-models/

关于ruby-on-rails - Rails 3 cattr_accessor 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275469/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com