例子

#!/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 的多进程的更多相关文章

  1. shell脚本多进程

    shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo &q ...

  2. shell 并发多进程同时执行

    #!/bin/bash SEND_THREAD_NUM= #设置进程数. tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名 mkfif ...

  3. SHELL网络爬虫实例剖析--转载

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://nolinux.blog.51cto.com/4824967/1552472 前天 ...

  4. Linux编程 9 (shell类型,shell父子关系,子shell用法)

    一. shell类型 1.1  交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...

  5. Linux多进程之间的文件锁

    之前对于文件的操作通常在一个进程中完成,最近需要在两个进程中对同一个文件进行操作.故想到了文件锁. Linux下可以使用flock()函数对文件进行加锁解锁等操作.简单介绍下flock()函数: 表头 ...

  6. [shell] Bash编程总结

    由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进 ...

  7. shell实践

    shell实践 父子shell 父shell:我们在登录某个虚拟机控制器终端的时候(连接某一个linux虚拟机)时,默认启动的交互式shell,然后等待命令输入. ps命令参数,是否有横杠的参数作用是 ...

  8. Linux Shell多进程并发以及并发数控制

    1. 基础知识准备 1.1. linux后台进程 Unix是一个多任务系统,允许多用户同时运行多个程序.shell的元字符&提供了在后台运行不需要键盘输入的程序的方法.输入命令后,其后紧跟&a ...

  9. shell多进程

    之前需要多进程程序都是python实现,闲来无事弄了下shell多进程,发现so easy(笑哭) 代码上: #!/bin/bash sleep 10 & sleep 5& wait ...

随机推荐

  1. Ubuntu16.04调整屏幕分辨率至1920*1080

    安装好ubuntu 16.04桌面版后,发现屏幕分辨率调整选项里没有1920*1080这一选项,经过一番查找,可通过如下方式进行屏幕分辨率设置.以下操作均在ubuntu 16.04桌面版操作,不要用远 ...

  2. Javascript动态生成的页面信息爬取和openpyxl包FAQ小记

    最近,笔者在使用Requests模拟浏览器发送Post请求时,发现程序返回的html与浏览器F12观察到的略有不同,经过观察返回的response.text,cookies确认有效,因为我们可以看到返 ...

  3. Keras RetinaNet github项目

    https://github.com/fizyr/keras-retinanet 根据此网站的方法,利用Pascal VOC 2007数据集开始训练,出现error: D:\JupyterWorkSp ...

  4. python迭代-如何使用生成器函数实现可迭代对象

    如何使用生成器函数实现可迭代对象 问题举例: 实现一个可迭代对象的类,它能迭代出给定范围内 的所有素数: pn = PrimeNumbers(1, 30) for x in pn: print(x) ...

  5. Vue.js数据响应基础原理

    许多前端JavaScript框架(例如Angular,React和Vue)都有自己的数据相应引擎.通过了解相应性及其工作原理,您可以提高开发技能并更有效地使用JavaScript框架.在视频和下面的文 ...

  6. C++生成GUID

    #include <objbase.h> #include <stdio.h> //--生成GUID const char* newGUID() { ] = {}; GUID ...

  7. 简介一下 i++和++i&&i=i+i,i+=1;的区别

    首先: int i=2; i++=2; ++i=3; 前者先显示当前的值,而后者则是先自增在显示值: second i=i+1和i+=1; 输出结果虽然一样,但是 1.byte i=2; i+=2; ...

  8. python之xml模块

    # XML 模块的操作参考链接 # http://www.cnblogs.com/yuanchenqi/articles/5732581.html

  9. lock 单例模式

    单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等 网站的计数器,一般也是采用单例模式实现,否则难以同步 单例模式要素 ...

  10. Beyond Compare相同文件为何显示差异

    原文地址: http://www.beyondcompare.cc/wenti/wenjian-chayi.html Beyond Compare是一款经典老牌且优秀的专业级文本比较工具,它可以很方便 ...