shell-mkfifo控制进程并发执行

上一篇 / 下一篇  2018-12-14 10:47:53 / 个人分类:shell

#!/bin/bash
#并发多线程执行

#接受信号2(ctrl+c)做的操作;关闭fd1000
trap "exec 1000>&-;exec 1000<&-;exit 0" 2

#创建管道文件、文件操作符绑定、删除管道文件
mkfifo testfifo
exec 1000<>testfifo
rm -rf testfifo

#对文件操作符进行写入操作。写入10个空行,10即要定义的后台线程数量
for((n=1;n<=10;n++))
do
echo >&1000
done

start=`date "+%s"`

#一共执行30个任务
for((i=1;i<=30;i++))
do
#读取一次管道中的一行
read -u1000
{
#要并发执行的命令:
echo success$i;sleep 5
echo >&1000
}&
done

wait

end=`date "+%s"`
echo "TIME: `expr $end - $start`"

#关闭fd1000
exec 1000>&-
exec 1000<&-

TAG:

 

评分:0

我来说两句

Open Toolbar