2010-07-12 59 views

回答

0

我的解决方案是使用陷阱(“CLD”),以便在子进程结束时捕获SIGCLD并减少计数器(a全局变量)正在运行的进程。

1

一个很好的问题,但我不认为Ruby中有这样的方法,至少不是在标准库中。有很多宝石出现在那里......

这个问题虽然听起来像是一个互斥类的工作。查阅条件变量here,了解如何使用Ruby的互斥锁。

+0

谢谢你,你的链接指出我正确的答案。 – giancarlo 2010-07-13 18:57:14

0

我通常有一个要完成的任务Queue,然后有几个线程消耗任务,直到他们收到一个指示工作结束的项目。 Thread库下的“Programming Ruby”中有一个例子。 (我不确定是否应该将示例复制并粘贴到堆栈溢出 - 对不起)