Jef*_*rey 6 ruby multithreading threadpool
据我所知,Ruby 1.9使用操作系统线程,但实际上只有一个线程可以并发运行(尽管一个线程可能正在阻塞IO而另一个线程正在进行处理).我见过的线程示例只是Thread.new
用来启动一个新线程.来自Java背景,我通常使用线程池来启动许多新线程,因为它们是"重量级".
是否有一个内置于ruby中的线程池构造?我没有在默认语言库中看到一个.或者是否有通常使用的标准宝石?由于操作系统级线程是ruby的一个新功能,我不知道库的成熟程度.
你是正确的,默认的C Ruby解释器一次只执行一个线程(其他基于C的动态语言,如Python有类似的限制).由于这种限制,线程在Ruby中并不常见,因此没有默认的线程池库.如果要并行完成任务,人们通常会使用进程,因为进程可以扩展到多个服务器.
如果你确实需要使用线程,我建议你在JRuby平台上使用https://github.com/meh/ruby-threadpool,这是一个在JVM上运行的Ruby解释器.这应该是你的胡同,因为它在虚拟机上运行,它将具有真正的线程.
归档时间: |
|
查看次数: |
3790 次 |
最近记录: |