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: