shell中进程的同步?

时间:2012-10-24 23:44:50

标签: multithreading shell unix synchronization

我正在分离一堆进程,我想为我的主要原始进程创建一个“障碍”,等待所有其他进程完成。代码流如下所示:

#...the main thread is executing now, and reaches this foreach loop:

foreach arg (myArgs)

    some_command arg & #these are the processes being forked off

end

#I want the main thread to WAIT here until all the above processes finish!

#... More code below here for the main thread to continue with

我不确定我想要什么同步原语,甚至不确定unix shell环境中可用的同步原语。也许像主线程的障碍?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

wait将等待所有子进程退出。

  

等待:等待[n]

     

等待指定的进程并报告其终止状态。 如果           没有给出N,所有当前活动的子进程都在等待,           并且返回码为零。 N可以是进程ID或作业           规格;如果给出了工作规范,那么工作中的所有流程都是如此           管道等待。