如何使Ruby或Python网站使用多个核心?

Mir*_*uiz 7 ruby python multithreading multicore

尽管PythonRuby每个解释器线程都有一个内核线程,但它们有一个全局解释器锁(GIL),用于保护潜在的共享数据结构,因此这会禁止多处理器执行.尽管用C或C++编写的那些语言中的部分可以是自由线程的,但除非使用多个进程,否则使用纯解释代码是不可能的.实现这一目标的最佳方法是什么?使用FastCGI?创建群集或虚拟化服务器?使用他们的Java等价物,JRuby和Jython?

Joh*_*kin 1

使用在单独的解释器中运行每个响应的接口,例如mod_wsgiPython。这使得可以在不遇到 GIL 的情况下使用多线程。

编辑:显然,mod_wsgi不再支持每个进程多个解释器,因为白痴无法弄清楚如何正确实现扩展模块。不过,它仍然支持在 FastCGI 风格的单独进程中运行请求,因此这显然是当前可接受的解决方案。