首页 > 编程语言 > 详细

shell语言实现并发操作

时间:2021-05-12 00:15:06      阅读:17      评论:0      收藏:0      [点我收藏+]
mkfifo创建FIFO特殊文件,是一个命名管道(可以用来做进程之间通信的桥梁)
exec命令:常用来替代当前shell并重新启动一个shell,换句话说,并没有启动子shell。使用这一命令时任何现有环境都将会被清除。
exec在对文件描述符进行操作的时候,也只有在这时,exec不会覆+盖你当前的shell+环境。

# 代码示例


创建一个fifo文件
fifo_file=/tmp/`date +%s`.fifo
mkfifo ${fifo_file}
关联fifo文件和fd6 exec
6<>${fifo_file}
rm -f ${fifo_file}

# 向fd6中输入内容 指定任务并发数
for((i=1;i<=10;i++)); do echo $i done >&6
# 遍历总任务数 for((idx=0;idx<20;idx++)); do read -u6 # 该命令执行一次,相当于尝试从fd6中获取一行,如果获取不到则阻塞 { echo ${idx} sleep 5 echo "${idx} is end"
echo >&6 # 完成后再补充一个回车到fd6中,释放一个锁 } & # 后台执行 done
# wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。 wait exec 6>&- # 关闭fd6

 参阅博客

https://www.cnblogs.com/klb561/p/10740995.html

https://blog.csdn.net/pcn01/article/details/106590180

shell语言实现并发操作

原文:https://www.cnblogs.com/wllit/p/14757114.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!