2011-04-02 100 views
0

如何在Ruby中同时运行两个loop do ... end?一个用于CLI界面,另一个用于后台处理。两个循环同时?

+0

是否使用线程或纤维取决于你是否想要一个循环,在一个特定的时间与其他交互。如果是,则使用“光纤”。如果你只是想在第二个循环开始时使用另一个循环,那么使用'Thread'(你可以让一个线程等待,直到另一个线程完成)。所以你需要更详细地说明你的需求。 – sawa 2011-04-03 00:22:03

回答

3

听起来像你想要两个threads

+0

我已经看过线程和纤维,并没有完全理解它们。任何示例? – RyanScottLewis 2011-04-02 23:39:54

+0

@ c00lryguy'Thread.new {loop {...}} [这个答案](http://stackoverflow.com/questions/4392028/windows-ruby-background-processing/4392590#4392590)我的可能会帮助你。 – Phrogz 2011-04-03 05:41:11

1

您可以使用收益来创建co-routines

发电机像Ruby的可以“滥用”打造协同程序。我不会说Ruby,但我可以用C#或Python概述这个概念。

这似乎也像something was added in Ruby 1.9 to make this easier

干杯

+0

是的。纤维就是为了这个目的。 – sawa 2011-04-02 23:40:03

+0

Fibers的一个例子是[here](http://www.infoq.com/news/2007/08/ruby-1-9-fibers) – sehe 2011-04-02 23:41:54