欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Rails 2.2要改成线程安全的了!

程序员文章站 2022-06-07 21:44:22
...
Ruby on Rails官方博客发布的信息,Josh Peek加入了Rails的核心开发团队。Josh Peek正在开发的一个项目是让Rails框架变成线程安全的版本,该项目参加了今年的Google Summer Of Code大赛。

DHH宣布将在Rails 2.2版本当中合并Josh Peek的关于Rails线程安全的项目工作成果,这意味者Rails下一个版本,即2.2版本将支持多线程方式运行Rails。

我们知道,截止Rails 2.1版本,Rails仍然是以单进程内单线程方式运行,如果Rails改为单进程内多线程方式运行,会带来什么好处呢?

1、节省物理内存
由于多个线程在一个进程内可以共享内存空间地址,可以节省大量物理内存空间地址。

2、可以并发响应更多请求
一个进程内多个线程的调度可以由Mongrel等支持多线程的Ruby应用服务器管理,因此可以根据请求负载,创建更多线程响应请求,提高并发处理能力

但是以多线程方式运行Rails,并非革命性的进步,多线程也会带来很多问题:

1、ruby进程的GC过程会阻塞进程内所有线程的运行,GC比多进程方式带来更大的影响

2、多线程可以共享进程内资源,可能会导致程序员滥用多线程造成多个线程资源争用问题

3、多线程内任何一个线程的问题都可能影响整个进程的稳定运行。


但是多线程的Rails对于JRuby无疑是一个天大的好消息!由于JVM本身就是支持内核多线程的,因此多线程的Rails运行在JRuby上面是一个天然的绝配,不但可以大幅度减少JRuby的内存消耗,而且可以切实有效提供JRuby的并发处理性能。

总之,Rails 2.2支持多线程将为我们打开Rails的另外一扇门。