shell 的多进程
例子
- #!/bin/bash
- temp_fifo_file=$$.info #以当前进程号,为临时管道取名
- mkfifo $temp_fifo_file #创建临时管道
- exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
- rm $temp_fifo_file #清空管道内容
- function f_sleep
- {
- sleep
- }
- temp_thread= #进程数
- for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
- do
- echo #每个echo输出一个回车,为每个进程创建一个占位
- done >& #将占位信息写入标识为6的管道
- for ((i=;i<;i++))
- do
- read #获取标识为6的占位
- {
- f_sleep
- echo $$,$i,`date`
- sleep
- echo $$,$i,`date`
- echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
- }& #>>>>>在后台执行{}中的任务
- done <& #将标识为6的管道作为标准输入
- wait #等待所有任务完成
- exec >&- #关闭标识为6的管道
例子
- #!/bin/bash
- temp_fifo_file=$$.info #以当前进程号,为临时管道取名
- mkfifo $temp_fifo_file #创建临时管道
- exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
- rm $temp_fifo_file #清空管道内容
- function f_sleep
- {
- sleep
- }
- temp_thread= #进程数
- for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
- do
- echo #每个echo输出一个回车,为每个进程创建一个占位
- done >& #将占位信息写入标识为6的管道
- for ((i=;i<;i++))
- do
- read #获取标识为6的占位
- {
- f_sleep
- echo $$,$i,`date`
- }& #>>>>>在后台执行{}中的任务
- sleep
- echo $$,$i,`date`
- echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
- done <& #将标识为6的管道作为标准输入
- wait #等待所有任务完成
- exec >&- #关闭标识为6的管道
例子
- #!/bin/bash
- temp_fifo_file=$$.info #以当前进程号,为临时管道取名
- mkfifo $temp_fifo_file #创建临时管道
- exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
- rm $temp_fifo_file #清空管道内容
- function f_sleep
- {
- sleep
- echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
- }
- temp_thread= #进程数
- for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
- do
- echo #每个echo输出一个回车,为每个进程创建一个占位
- done >& #将占位信息写入标识为6的管道
- for ((i=;i<;i++))
- do
- read #获取标识为6的占位
- {
- f_sleep
- echo $$,$i,`date`
- }& #>>>>>在后台执行{}中的任务
- sleep
- echo $$,$i,`date`
- done <& #将标识为6的管道作为标准输入
- wait #等待所有任务完成
- exec >&- #关闭标识为6的管道
例子
- #!/bin/bash
- temp_fifo_file=$$.info #以当前进程号,为临时管道取名
- mkfifo $temp_fifo_file #创建临时管道
- exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
- rm $temp_fifo_file #清空管道内容
- function f_sleep
- {
- sleep
- echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
- }
- temp_thread= #进程数
- for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
- do
- echo #每个echo输出一个回车,为每个进程创建一个占位
- done >& #将占位信息写入标识为6的管道
- for ((i=;i<;i++))
- do
- read #获取标识为6的占位
- {
- f_sleep
- echo $$,$i,`date`
- sleep
- echo $$,$i,`date`
- }& #>>>>>在后台执行{}中的任务
- done <& #将标识为6的管道作为标准输入
- wait #等待所有任务完成
- exec >&- #关闭标识为6的管道
shell 的多进程的更多相关文章
- shell脚本多进程
shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo &q ...
- shell 并发多进程同时执行
#!/bin/bash SEND_THREAD_NUM= #设置进程数. tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名 mkfif ...
- SHELL网络爬虫实例剖析--转载
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://nolinux.blog.51cto.com/4824967/1552472 前天 ...
- Linux编程 9 (shell类型,shell父子关系,子shell用法)
一. shell类型 1.1 交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...
- Linux多进程之间的文件锁
之前对于文件的操作通常在一个进程中完成,最近需要在两个进程中对同一个文件进行操作.故想到了文件锁. Linux下可以使用flock()函数对文件进行加锁解锁等操作.简单介绍下flock()函数: 表头 ...
- [shell] Bash编程总结
由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进 ...
- shell实践
shell实践 父子shell 父shell:我们在登录某个虚拟机控制器终端的时候(连接某一个linux虚拟机)时,默认启动的交互式shell,然后等待命令输入. ps命令参数,是否有横杠的参数作用是 ...
- Linux Shell多进程并发以及并发数控制
1. 基础知识准备 1.1. linux后台进程 Unix是一个多任务系统,允许多用户同时运行多个程序.shell的元字符&提供了在后台运行不需要键盘输入的程序的方法.输入命令后,其后紧跟&a ...
- shell多进程
之前需要多进程程序都是python实现,闲来无事弄了下shell多进程,发现so easy(笑哭) 代码上: #!/bin/bash sleep 10 & sleep 5& wait ...
随机推荐
- Ipython使用指南
一.简介 2001年,Fernando Perez为了得到一个更为高效的交互式Python解释器而启动的一个项目,IPython不仅仅是一个加强版的shell,他可以直接进行绘图操作的GUI控制台,一 ...
- iOS与H5交互(WKWbebView)
前言: 在iOS开发中,或多或少的会嵌入一些H5页面,有时候需要原生代码和H5页面进行交互.iOS8开始苹果推出性能更强大的WKWebView,所以一下方法是关于WKWebView与JS的交互. 创建 ...
- win 下 python ImportError: No module named requests
第一次弄爬虫,报库找不到,网上找了半天,一般都让都让改成绝对路径...那不是饮鸩止渴嘛. 然后 在无意中发现,不需要控制台输入pip命令,因为不是在Linux下啊,,win下直接在pycharm里添加 ...
- mariadb安装
1.配置yum源 基本源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ...
- 实现一个自定义的ArrayList类,实现将原List中的每个数据都乘以10
1.首先自定义一个Operate接口,如下所示: public interface Operate { public Integer caozuo(Integer i); } 2.实现自定义的Arra ...
- 极致21点开发DAY4
完成的内容:1.修改上一篇博文中的Bug 2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...
- 【数据结构】算法 LinkList (Reverse LinkedList) Java
反转链表,该链表为单链表. head 节点指向的是头节点. 最简单的方法,就是建一个新链表,将原来链表的节点一个个找到,并且使用头插法插入新链表.时间复杂度也就是O(n),空间复杂度就需要定义2个节点 ...
- maven clean或package报错
[ERROR] Failed to execute goal on project jeesns-service: Could not resolve dependencies for project ...
- Scala环境搭建及Intellij IDEA安装
1.JDK官网地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Scala ...
- JavaFX-Application
JavaFX—Application 1.Application是JavaFX程序的入口,任何javafx应用程序程序都要继承该类并重写start()方法 public class TsetStage ...