首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on Rails不是线程安全是什么意思?

Ruby on Rails不是线程安全是什么意思?
EN

Stack Overflow用户
提问于 2009-02-03 03:12:31
回答 3查看 1.7K关注 0票数 6

我只是在阅读ROR (还没有深入研究),我听说它不是线程安全的。显然,这并不意味着一个以上的人不能同时访问您的站点,那么这到底是什么意思呢?线程在ROR中的作用是什么?它们仅仅是指请求处理吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-03 03:21:35

您的信息已过期。从2.2.2开始,它是线程安全的

请记住Ruby MRI 1.8.x,最广泛使用的Ruby实现使用Green Threads,因此在1.8.x中,如果您创建100个线程,它们都在同一个CPU上运行。因此,当使用MRI托管Rails网站时,您可能希望运行与CPUS数量一样多的Ruby实例。像passenger这样的东西会帮你解决这个问题。

这曾经是JRuby的一个大问题,因为JRuby有原生线程,处理进程似乎是多余的。不管怎么说,现在已经解决了。

另外,Iron Ruby,.Net Ruby解释器运行本机线程。

注意: Ruby 1.9.1使用本地线程,但是仍然有一个全局解释器锁。

票数 28
EN

Stack Overflow用户

发布于 2009-02-03 03:19:05

基本上,它的意思是,您不能在同一进程中的不同线程下运行rails的多个副本,因为一些资源可能会在线程之间无意地泄漏,从而导致奇怪的行为,例如对象似乎在随机时间更改/消失。

此外,也可能出现这样的情况:类的设计中没有内置任何同步,这使得将rails的某些部分放入线程以及让其他部分在线程之间共享变得困难。

票数 4
EN

Stack Overflow用户

发布于 2009-07-29 13:10:44

值得一提的是,Ruby MRI 1.8.x使用绿色线程,但Ruby MRI 2将具有本机线程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/505900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档