用fifo来处理shell下的多进程并发
时间:2016-06-05 00:16来源:linux.it.net.cn 作者:IT
今天看到个不错的shell多进程并发脚本的讲解,现共享给大家:
02 |
#author : peterguo@tencent.com |
05 |
#sub process do something |
06 |
function a_sub_process { |
07 |
echo "processing in pid [$$]" |
16 |
exec 6<>$FIFO_FILE # 将fd6指向fifo类型 |
22 |
#向fd6中输入$PROCESS_NUM个回车 |
23 |
for ((idx=0;idx<$PROCESS_NUM;idx++)); |
29 |
for ((idx=0;idx<20;idx++)); |
31 |
read -u6 #read -u6命令执行一次,相当于尝试从fd6中获取一行,如果获取不到,则阻塞 |
32 |
#获取到了一行后,fd6就少了一行了,开始处理子进程,子进程放在后台执行 |
35 |
echo "sub_process is finished" |
39 |
#完成后再补充一个回车到fd6中,释放一个锁 |
40 |
echo >&6# 当进程结束以后,再向fd6中加上一个回车符,即补上了read -u6减去的那个 |
(责任编辑:IT) |
------分隔线----------------------------