Linux shell 实现多线程
在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少
任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。我们就先实现第一种情况:
实例一:正常情况脚本
?
#
!/bin/bash
for
?((i
=
0
;i
<
5
;i
++
));
do
????????{
????????????????
sleep
?
3
;echo?
1
>>
aa?
&&
?echo?
“
done!
“
????????}?
done
wait
cat?aa
|
wc?
–
l
rm?aa
!/bin/bash
for
?((i
=
0
;i
<
5
;i
++
));
do
????????{
????????????????
sleep
?
3
;echo?
1
>>
aa?
&&
?echo?
“
done!
“
????????}?
done
wait
cat?aa
|
wc?
–
l
rm?aa
?
这种情况下,程序顺序执行,每个循环3s,共需15s左右。
?
$?
time
?bash?test
.
sh?
time
?bash?test
.
sh?