美文网首页
shell中的wait命令及并发的实现{}&

shell中的wait命令及并发的实现{}&

作者: atdoking | 来源:发表于2021-04-02 23:19 被阅读0次

    sleep 和wait

    在 shell 中使用 wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。
    sleep是使系统休眠一定的时间之后再去执行下面的任务。

    wait [进程号或作业号]

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

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

    shell脚本多线程

    
    #!/bin/bash
     
    start_time=$(date +%s)
     
    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个线程来处理.

    相关文章

      网友评论

          本文标题:shell中的wait命令及并发的实现{}&

          本文链接:https://www.haomeiwen.com/subject/ypdkkltx.html