Railsconf 上面的:
关于 Rails 里面 config.threadsafe! 这个配置
http://speakerdeck.com/u/tarcieri/p/configthreadsafe-just-do-it
config.threadsafe! 这个功能开启我之前 ytrip.com 那个项目尝试过,结果跑不起来,后面也没有再关注过。 有人在实际项目中用它么?
这个你需要确保自己引用的每个 gem 都是 threadsafe 的。
如果有分析 gemfile.lock 文件的服务来查询当前项目的 gem 是不是 threadsafe 就太好了。
http://speakerdeck.com/u/tarcieri/p/configthreadsafe-just-do-it 图片上的 http://railsplugins.org 可以看是否 threadsafe.
这个 slide 我看过了。我把自己的理解发在这里, 1、green-threaded 并不会被 GIL 限制。通过 config.threadsafe! 加到 application 可以提高程序执行效率。 2、通过http://railsplugins.org/ 可以查到哪些 gem 支持 threadsafe!
GIL 的影响在于单进程不能在多核的情况下实现并行,需要一个 core 一个进程。 1.8 的线程差了些,context switch 开销大,不过 web app 应该还好。1.9 和其他的 ruby 实现都用 native thread 了。