您的位置:首页 > 运维架构 > Shell

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

2016-11-23 15:24 453 查看
在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐