以下使用线程完成了
@work_queue
。在这里使用Thread::Queue
。@conns
Expect->spawn
对象&对共享$conns[$i]
。\@work_queue
删除单个项目,并通过其连接对象执行一些处理,之后它从@work_queue
中选取下一个可用项目。@work_queue
为空时,所有线程都将安全关闭现在,问题是加载阶段在很多情况下花费的时间太长。但由于使用了@work_queue
,Expect->spawn
的并行加载只能在一个单独的过程中进行。不在线上。
请建议使用fork实现上述方案的好方法。或者,如果有一种方法可以将@conns
用于线程,那就更好了。 (仅限UNIX / LINUX)