2011-04-02 66 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