Shell 多进程实现
#!/bin/bash SEND_THREAD_NUM=3 tmp_fifofile="/tmp/$$.fifo" mkfifo "$tmp_fifofile" exec 6<>"$tmp_fifofile" for ((i=0;i<$SEND_THREAD_NUM;i++));do echo #期望启动多少子进程, 就向管道中写入多少个空格 done >&6 while (1>0) do read -u6 { echo $i #将要执行的脚本或命令 sleep 3 #为了便于观察加的休眠时间 , 正式环境时可去掉 echo >&6 #读出管道中的内容后, 再写入一个,以维持子进程数 chid=$! echo "job work finish,process id $chid" } & #pid=$! #echo "pid is $pid" sleep 1 #多长时间启动一个子进程, 如果不加休眠, CPU利用率会到10%, 可以调整时间到一个合理范围, sleep(0.01) 10毫秒 done wait exec 6>&- exit 0
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17