专业编程基础技术教程

网站首页 > 基础教程 正文

Linux-shell脚本多线程实现(shell 多线程并发执行)

ccvgpt 2025-04-07 12:29:08 基础教程 3 ℃

#大有学问#
使用shell 脚本时,我们经常会碰到了循环执行太慢的情况。

这种情况下,可以使用多线程方式,以提高效率。

Linux-shell脚本多线程实现(shell 多线程并发执行)

具体做法

使用 &+wait 达到多线程的效果

如果我们要执行一个睡眠(sleep命令)程序5次,每次等待3秒,共计耗时15秒,代码如下:

 #/bin/bash
 date #显示当前时间
 for num in seq 1 5
 do
 {
 echo "sleep 3 sec"
 sleep 3
 }
 done
 date #显示当前时间
 


输出结果:

2023年 03月 15日 星期三 14:12:30 CST 
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
2023年 03月 15日 星期三 14:12:45 CST
#使用 &+wait,可以多线程执行
 
 #/bin/bash
 date
 for num in seq 1 5
 do
 {
 echo "sleep 3 sec"
 sleep 3
 }&
 done
 wait
 date

输出结果:

2023年 03月 15日 星期三 14:14:30 CST 
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
sleep 3 sec
2023年 03月 15日 星期三 14:14:33 CST

这里&+wait形式会让循环体内的命令全部进入后台运行,其中使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。而&是把每次循环体命令挂在后台运行。

Tags:

最近发表
标签列表