命令或代码在同一时间运行两个进程(并行)

时间:2012-09-18 12:04:44

标签: bash shell parallel-processing

我有两个过程:

第一个过程,我运行:。 / Vlc视频>> resu.txt它给我一个输出文件resu.txt

第二个进程是一个对文件resu.txt进行计算的脚本 这个脚本的名字是calcule.sh,我运行它: / Calcul.sh

我想同时运行两个进程。即有两个平行的过程。

我如何并行运行两个进程(。/ Vlc视频>> resu.txt和./ Calcul.s)。有没有这样做的命令?拜托,你能给我一个能做到这一点的代码

提前感谢您的回答。

4 个答案:

答案 0 :(得分:5)

修改calcule.sh以便从标准输入读取而不是从resu.txt读取,然后在管道中执行命令,如

. /Vlc video | ./calcule.sh

答案 1 :(得分:1)

这里没有真正的并行处理。您的第二个脚本无法运行,直到它有一些要处理的数据由第一个脚本生成。 这仅仅是pipelining的一个案例。您不需要使用临时文件来存储结果,只需将第一个输出输出到第二个输入:

./Vlc video | ./Calcul.s

你必须稍微更改你的第二个脚本,以便从管道中读取。

答案 2 :(得分:0)

如果进程相互依赖,即进程1(VLC)必须完成并生成其输出,以便进程2(您的脚本)有一些工作,那么它们是顺序的,不能并行运行数据依赖。

答案 3 :(得分:0)

如果没有数据依赖并且可以并行运行,那么使用这两个命令

./ Vlc video > resu.txt &

然后

./calculate.sh