Linux BASH多进程并行处理的方法实现
为什么80%的码农都做不了架构师?>>>
在shell中进行多进程处理,以前写的都是单进程的,今天看了一篇文章讲了linux的多进程处理。
#!/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
多进程的实现,主要有两点
1、将当前的进程放到后台去执行,要用到&
2、在shell脚本的最后面加上wait,等待所有进程完成后再进行后续处理
转载于:https://my.oschina.net/sucre/blog/688514
Linux BASH多进程并行处理的方法实现相关推荐
- linux bash环境,Win10系统怎样启用Linux Bash环境
不久前,微软召开了Build 2016大会,会上微软宣布将在Windows10系统中内置Linux Bash,这一消息引起了非常大的轰动.到了Windows10内部预览版Build 14316,该特性 ...
- linux -bash: ipconfig: command not found 解决方法
linux -bash: ipconfig: command not found 解决方法 参考文章: (1)linux -bash: ipconfig: command not found 解决方法 ...
- linux bash中too many arguments问题的解决方法
linux bash中too many arguments问题的解决方法 参考文章: (1)linux bash中too many arguments问题的解决方法 (2)https://www.cn ...
- linux打开python3_Python3 执行Linux Bash命令的方法
和之前C++执行Linux Bash命令的方法 一样,Python依然支持system调用和popen()函数来执行linux bash命令. 方法一:system调用 #仅仅在一个子终端运行系统命令 ...
- Linux Bash漏洞最新最全的修复方法
原文链接:Linux Bash漏洞测试方法与修复方法http://www.jishubu.net/yunwei/anquan/382.html Linux 用户今天又得到了一个"惊喜&quo ...
- 在Windows中运行Linux bash命令的几种方法
如果你正在课程中正在学习 shell 脚本,那么需要使用 Linux 命令来练习命令和脚本. 你的学校实验室可能安装了 Linux,但是你自己没有安装了 Linux 的笔记本电脑,而是像其他人一样的 ...
- linux文件夹打开闪退,win10系统内置的Linux Bash启动闪退的解决方法
很多小伙伴都遇到过win10系统内置的Linux Bash启动闪退的困惑吧,一些朋友看过网上零散的win10系统内置的Linux Bash启动闪退的处理方法,并没有完完全全明白win10系统内置的Li ...
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556 文章- 38 评论- 77 ...
- Linux安全事件应急响应排查方法总结
Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...
最新文章
- 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
- PLSQL写给员工涨工资,总裁涨1000,经理涨800,其他员工涨400
- IDF实验室-图片里的英语
- java学习(89):Charactor包装类统计
- 一个空间配置多个虚拟主机
- php符号%3c%3e啥意思,[PHP防火墙]输入内容存在危险字符,安全起见,已被本站拦截...
- mybatis查询返回null的原因_可怕!你没看错,这次确实是纯手工实现一个MyBatis框架...
- 使用篇-基于Laravel开发博客应用系列 —— 联系我们 发送邮件 队列使用(基于数据库)...
- python爬虫大作业爬多少数据_爬虫大作业
- sqlite使用手册
- 从零开始学WEB前端——VUE介绍
- H3C交换机配置的备份与恢复[3CDaemon]
- 计算机配置路径,计算机基础~Windows工作路径、相对路径、绝对路径
- day3-作业(18-23)(java泛型总结一)
- 华三模拟器:路由备份路由聚合
- linux pv 信号量,pv操作与信号量(示例代码)
- 壳聚糖导管复合辛伐他汀/泊洛沙姆407水凝胶/负载转化生长因子β1温敏性壳聚糖水凝胶的制备
- 名悦集团分享汽车保养小知识,汽车异味轻松去除有妙招
- CSAPP Lab3 实验记录 ---- Attack Lab(Ctarget)
- SpringSecurity