Shell 并发编程
案例1 通过文件描述符控制并发数 #用fifo处理shell下多进程并发: #!/bin/bash #author : vaedit #date : 2017-8-15 #需要执行的工作函数 function mima(){ openssl rand -base64 40 >> ssf.txt } #判断是否存在fifo文件 if [ -e /tmp/$$.fifo ];then rm -rf /tmp/$$.fifo fi #创建$$.fifo 主要是为了防止同名 fifo_file=/tmp/$$.fifo mkfifo $fifo_file #把文件表述符fd6和fifo文件绑定 exec 6<>"$fifo_file" process_num=10 #向fd6中输入10个回车 for ((i=0;i<$process_num;i++)) do echo done >&6 #处理业务 for ((a=0;a<10;a++)) #这里写10表示业务总条数,比如业务总共要执行100次,就填100 do read -u6 ##read -u6命令执行一次,相当于尝试从fd6中获取一行,如果获取不到,则阻塞#获取到了一行后,fd6就少了一行了,开始处理子进程,子进程放在后台执行 { mima sleep 3 # 暂停3秒,这里是关键点