使用'time'计时bash中的并发进程

时间:2009-05-14 20:48:57

标签: bash time concurrency

是否有一种简单的方法可以完成相同的操作,但是同时使用bash运行这两个进程?

$ time sleep 5; sleep 8

time应报告总共8秒(或最长任务的时间量)

5 个答案:

答案 0 :(得分:6)

$ time (sleep 5 & sleep 8 & wait)

real    0m8.019s
user    0m0.005s
sys     0m0.005s

没有任何参数,shell内置wait等待所有后台作业完成。

答案 1 :(得分:1)

time sleep 8 & time sleep 5

&运算符导致第一个命令在后台运行,这实际上意味着这两个命令将同时运行。

答案 2 :(得分:1)

以睡眠为例。

如果您只想计算第一个流程,那么

time sleep 10 & sleep 20

如果你想对两个过程计时,那么

time (sleep 10 & sleep 20)

答案 3 :(得分:0)

对不起我的问题第一次可能不太清楚,但我想我找到了答案,这要归功于这里给出的一些指示。

time sleep 5& time sleep 8

会同时运行两个进程,然后我会采取更大的结果。

答案 4 :(得分:0)

如果你安装了GNU Parallel http://www.gnu.org/software/parallel/,你可以这样做:

time parallel sleep ::: 5 8

您可以通过以下方式安装GNU Parallel:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

观看GNU Parallel的介绍视频了解详情: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1