有没有一个Ruby模块可以轻松地在多个进程之间共享对象? 我正在寻找类似于Python的multiprocessing模块的东西,它支持可以在进程之间共享的进程安全队列和管道。
在Ruby中使用多进程工作
原标题:
最佳回答
将提供简单进程通讯的DRb与线程安全队列Queue或SizedQueue相结合,应该可以满足您的需求。
你也可能想要查看托管在Github上的beanstalkd,链接为http://github.com/kr/beanstalkd/tree/master,你可以在这里找到。
问题回答
我认为你可以利用Ruby IO的设施做很多想要做的事情;你是在进程之间进行共享,而不是线程,对吗?
如果是这样的话,IO.pipe将会做到你需要的事情。据我所知,Ruby没有内置处理跨进程队列的方式,但如果你在Unix上,你也可以使用FIFO(先进先出)。
如果您想要更细致、具有良好线程支持的东西,我相信您可以在使用JRuby时与java.util.concurrent搭配。MRI具有相当糟糕的线程/并发支持,因此如果这是您的目标,JRuby可能是更好的选择。
我碰巧遇到这个图书馆,但我还没有尝试过它。
Parallel::ForkManager — 一个简单的并行处理分叉管理器。
http://parallelforkmgr.rubyforge.org/ 的中文翻译为:http://parallelforkmgr.rubyforge.org/
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding