如何并行运行部分bash脚本

时间:2015-07-02 04:43:07

标签: multithreading bash for-loop

我正在运行一个bash脚本,该脚本由两个相当密集的循环组成,这些循环按顺序运行(第一个循环运行后跟第二个循环)。这是非常耗时的,我想知道是否有办法并行运行这些循环以使脚本更有效率?

感谢任何帮助。谢谢。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

(   while x
    do
        loop 1
    done
) &
(   while y
    do
        loop 2
    done
) &
# Wait for both loops to finish
wait

答案 1 :(得分:1)

f1(){
while true ; do
    # do something
    sleep 1
done
}

f2(){
while true ; do
    # do something
    sleep 1
done
}

# run both f1 and f2 in parallel
f1 &
PID1=$!

f2 &
PID2=$!

# waits the end of both
wait $PID1 $PID2
echo "Done!"