gpt4 book ai didi

ruby - Regexp.last_match 线程安全吗?

转载 作者:数据小太阳 更新时间:2023-10-29 06:34:19 26 4
gpt4 key购买 nike

这是我正在查看的代码:

def method_missing(id, *args)
return self.find(Regexp.last_match(1), args[0]) if id.id2name =~ /find_by_(.+)/
raise NoMethodError
end

如果我有多个线程调用 Regexp.last_match 会怎样?

如果我有多个线程使用 method_missing 方法调用对象会怎样?

最佳答案

Ruby 1.9.2 平台文档声明调用 Regexp.last_match 等同于读取特殊的 $~ 全局变量。

摘自“The Ruby Programming Language”,第 318 页:“重要的是要记住 $~ 和从它派生的变量都是线程本地和方法本地的。”

所以Regexp.last_match线程安全的。至于您在 method_missing 中使用的其他方法,我相信它们也是线程安全的。 (如果有人有不同的看法,请编辑这篇文章。)

关于ruby - Regexp.last_match 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9004245/

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