我刚刚在阅读关于ROR的内容(还没有深入研究),听说它不是线程安全的。显然,这并不意味着不能有多个人同时访问您的网站,那么它到底是什么意思呢?线程在ROR中起到了什么作用?它们只是请求处理吗?
我刚刚在阅读关于ROR的内容(还没有深入研究),听说它不是线程安全的。显然,这并不意味着不能有多个人同时访问您的网站,那么它到底是什么意思呢?线程在ROR中起到了什么作用?它们只是请求处理吗?
您的信息已经过时。 截至2.2.2,它是线程安全的。
请记住Ruby MRI 1.8.x,Ruby最广泛使用的实现使用Green Threads,因此在1.8.x中,如果您创建100个线程,它们都在同一个CPU上运行。因此,在使用MRI托管Rails网站时,您可能希望有尽可能多的Ruby实例运行和您拥有的CPU数量相同。像passenger这样的东西会为您处理这些问题。
这曾经是JRuby的一个大问题,因为JRuby具有本地线程,而搞定进程似乎是多余的。无论如何,现在已经解决了。
顺便说一下,.Net Ruby解释器Iron Ruby运行本地线程。
注意:Ruby 1.9.1使用本地线程,但仍然存在全局解释器锁定。