为了能到远方,脚下的每一步都不能少.|

南哈哈

园龄:3年10个月粉丝:2关注:0

Shell中的wait命令及并发的实现

sleep 和 wait

shell多线程

  并发的实现{}&

 

sleep 和 wait

  在 shell 中使用 wait 是在等待上一批或上一个脚本执行完 (即上一个进程终止),在执行 wait 之后的命令。

  sleep 是使用系统休眠一定的时间之后再去执行下面的任务。

 

  wait [进程号或作业号]

wait 22 等待22进程完在执行下面的任务
wait %1 第一个作业

    如果 wait 后面不带任何的进程号或者作业号,那么 wait 会直至当前 shell 中进程的所有子进程都执行结束后,才继续执行下一步。

 

shell脚本多线程

#!/bin/bash
start_time=$(date +%s) #从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数(时间戳)
for ((i=1;i<=1000;i++))
do
{
sleep 5s #该命令是用来测试的命令,此处为实际执行的命令
echo "$i"
}&
done
wait #等待1000个后台任务全部执行完成之后,再继续执行以下脚本
end_time=$(date +%s)
echo "TIME: $(expr $end_time - $start_time)"

    用 {} 把循环体括起来,后加一个 & 符号,代表每次循环都把命令放入后台执行,一旦放入后台,就意味着 {} 里面的命令交给操作系统的一个线程处理了,循环了1000次,就有1000个 & 把任务放入后台,操作系统会并发1000个线程来处理

 

本文作者:南哈哈

本文链接:https://www.cnblogs.com/nanruosen/p/16325342.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   南哈哈  阅读(463)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起