shell 多进程使用
实测发现也就那样,在有sleep的时候确实比for循环快,但是把sleep 去掉就没有for快了,真垃圾,根据场景选择
real 1m53.050s user 0m0.589s sys 0m1.061s [root@localhost ~]# time for i in `seq 1 100`;do curl -s -I "http://www.baidu.com/"|wc -l;sleep 1; done
#!/bin/bash
THREAD_NUM=5
TMP_FILE="/tmp/$$.fifo"
trap "exec 6>&-;exec 6<&-;exit 0" 2
mkfifo ${TMP_FILE}
exec 6<>${TMP_FILE}
rm -rf ${TMP_FILE}
for ((J=1;J<=${THREAD_NUM};J++))
do
echo >&6
done
localfunc(){
#echo "${I}: success"
curl -s -I "http://www.baidu.com/"|wc -l
sleep 1
}
for ((I=1;I<=100;I++))
do
read -u6
{
#echo "${I}: success" ; sleep 1
localfunc
echo >&6
}&
done
wait
exec 6>&-
exec 6<&-
real 0m24.407s
user 0m0.576s
sys 0m1.059s
time sh shss.sh
参考:https://www.dazhuanlan.com/realpanda/topics/978898
https://www.cnblogs.com/old-path-white-cloud/p/11685558.html

浙公网安备 33010602011771号