您现在的位置是:网站首页> 编程资料编程资料
Linux BASH多进程并行处理的方法实现_linux shell_
2023-05-26
289人已围观
简介 Linux BASH多进程并行处理的方法实现_linux shell_
复制代码 代码如下:
#!/bin/bash
SEND_THREAD_NUM=13
tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名
mkfifo “$tmp_fifofile" # 新建一个随机fifo管道文件
exec 6<>"$tmp_fifofile" # 定义文件描述符6指向这个fifo管道文件
rm $tmp_fifofile
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循环 往 fifo管道文件中写入13个空行
done >&6
for i in `seq 100`;do # 100 次 for 循环 开始
read -u6 # 从文件描述符6中读取行(实际指向fifo管道)
{
echo $i # 打印 i
sleep 3 # 暂停3秒
echo >&6 # 再次往fifo管道文件中写入一个空行。
} &
# {} 这部分语句被放入后台作为一个子进程执行,所以不必每次等待3秒后执行
#下一个,这部分的echo $i几乎是同时完成的,当fifo中13个空行读完后 for循环
# 继续等待 read 中读取fifo数据,当后台的13个子进程等待3秒后,按次序
# 排队往fifo输入空行,这样fifo中又有了数据,for语句继续执行
pid=$! #打印最后一个进入后台的子进程id
echo $pid
done
wait
exec 6>&- #删除文件描述符6
exit 0
您可能感兴趣的文章:
相关内容
- shell grep 查找进程的小技巧_linux shell_
- Linux下Oracle归档日志自动清理脚本代码(sh)_linux shell_
- Linux Shell中判断进程是否存在的代码_linux shell_
- Linux命令行和shell脚本编程宝典 Richard Blum_linux shell_
- shell 字符串操作(长度,查找,替换)详解_linux shell_
- shell 中数学计算总结_linux shell_
- hbase shell基础和常用命令详解_linux shell_
- shell 基本计算、逻辑运算、位运算详解_linux shell_
- 关于Shell脚本效率优化的一些个人想法_linux shell_
- BASH 学习笔记小结_linux shell_
