关于使用shell开辟几个并发线程同时执行互不相关的应用

在bash中,我们通过后台运行(&)实现多线程。

#!/bin/bash
tmpt="/tmp/$$.fifo"
mkfifo $tmpt #新建一个fifo类型的文件
exec 6<>$tmpt#将fd6指向fifo类型
rm $tmpt
t_sum=0;
function fun3()#创建函数
{
    t_sum=$(($t_sum+1))
}
for ((i=0;i<5;i++));do#指定开辟的线程数
echo
done >& 6   #事实上就是在fd6中放置了5个回车符

for ((i=0;i<5;i++));do#放入后台并发循环5次
read -u 6

{
    
    for((j=0;j<7;j++));do#fun3执行的次数  
    {
        fun3
        echo "lllllllllllll"        
    }
    done
    
    echo $t_sum;
    t_sum=0;
    echo >& 6 #当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个
}&
done
wait
exec 6>-#关闭fd6

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值