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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值