Ruby线程池理论

Ruby线程池理论,ruby,multithreading,threadpool,Ruby,Multithreading,Threadpool,我正在运行一个Ruby线程池(例如thread.pool(10)),我在如何实际处理分配任务背后的逻辑方面遇到了麻烦 我想一次运行十个任务,这通常可以正常工作-但是,pool.process{…]在使用10个线程后不会阻塞主线程-它会不断加载任务(因此,我的循环将大量任务加载到池中,这是不正确的……实际上,在加载更多任务之前,我需要检查这十个任务中是否有一个返回“false”)。因此,简单地说,我希望一次运行十个任务,并且仅当运行的任务少于十个时才将新任务加载到池中 我不应该为此使用池吗?在反复

我正在运行一个Ruby线程池(例如
thread.pool(10)
),我在如何实际处理分配任务背后的逻辑方面遇到了麻烦

我想一次运行十个任务,这通常可以正常工作-但是,
pool.process{…]
在使用10个线程后不会阻塞主线程-它会不断加载任务(因此,我的
循环将大量任务加载到池中,这是不正确的……实际上,在加载更多任务之前,我需要检查这十个任务中是否有一个返回“false”)。因此,简单地说,我希望一次运行十个任务,并且仅当运行的任务少于十个时才将新任务加载到池中


我不应该为此使用池吗?

在反复尝试之后,我不得不重新构造代码,以更好地适应我所做的事情的逻辑。Thread.pool有一些有趣的函数,例如trim,但是在线描述对我来说没有足够的意义来使用它们


简言之:pool.process应该在您已经检查是否希望运行该子任务后才能运行。

在反复尝试之后,我最终不得不重新构造代码,以更好地适应我所做的工作的逻辑。Thread.pool有一些有趣的函数,例如trim,但在线描述并没有让我完全理解我觉得应该使用它们

简言之:pool.process只应在您检查是否希望运行该子任务后运行