bash fifo管道使用测试例子
2015-08-05 11:43
399 查看
碰到一个场景:
一个脚本内起了多个后台线程,往一个日志文件写日志,结果因为线程之间争抢写锁,导致脚本执行效率很低,为了解决这个问题,希望减少写锁的争抢,尝试使用fifo解决该问题,以下是实验用例子。
一个脚本内起了多个后台线程,往一个日志文件写日志,结果因为线程之间争抢写锁,导致脚本执行效率很低,为了解决这个问题,希望减少写锁的争抢,尝试使用fifo解决该问题,以下是实验用例子。
#!/bin/bash fifo_file=fifo.pipe mkfifo $fifo_file exec 6<>$fifo_file rm $fifo_file # 随便一个写了一个生成数据的函数 DateWrite () { i=0 while [ $i -lt 1000 ] do str=`date` i=$(( i+1 )) echo "$i $str" done } # 起100个后台线程,往管道写数据 for (( i=0; i<100; i++ )) do ( DateWrite >&6 ) & done #以下逻辑用于一直从管道中读取数据 while read date_time do echo $date_time >> output.file done <&6
相关文章推荐
- Bash shell script 取到文件中每一行(Just for record)
- 学习笔记:Shell脚本-2015-08-05
- Failed to initialize the PowerShell host 解决方案
- 初学git:用git bash往github push代码
- Linux Shell脚本攻略复习
- linux下shell脚本执行jar文件
- [Linux--Shell]使用命令行关机或重启
- 【Linux】如何用shell编写斐波那契函数
- 杀死指定的一个shell脚本
- shell脚本学习笔记之文本处理命令
- shell知识点小结
- git Bash 安装&配置与基本操作
- git Bash 安装&配置与基本操作
- linux bash shell之declare
- shell中的特殊符号
- 常见经典排序算法学习总结(插入、shell、冒泡、选择、归并、快排等)
- Linux Shell Demo
- powershell小工具,efs加解密三剑客。
- adb shell am/pm 常用命令详解与使用
- shell脚本下用代码段把输入全部重定向到一个文件