业务开发过程中,经常会在后台写一些shell脚本处理数据,但估计很多人不知道shell脚本也可以支持多线程,而且非常简单。本篇文章主要就是介绍shell实现多进程以及进程数量控制
需求:
有一个文件里面有一组数值,shell脚本读取文件中的每一行值的时候就需要sleep对应值得时间,
文件中的内容加起来等于45s
[root@localhost test]# cat file
1
2
5
6
3
8
5
4
6
3
2
然后再没有并发的情况下面这个脚本需要执行的时间就是45s
thread.sh文件
#!/bin/bash
start=`date +%s`
#循环读取文件进行sleep操作
while read line
do
echo "will go to sleep time $line"
sleep $line
i=$(($i+$line))
done<./file
end=`date +%s`
echo "cost time "$(($end-$start))
运行的结果是
will go to sleep time 1
will go to sleep time 2
will go to sleep time 5
will go to sleep time