在linux脚本编程中使用多线程编程,其中wait命令可以实现shell的多线程同步控制。

1. 启动后台子任务

  在执行命令后加&操作符,表示将命令放在子shell中异步执行。可以达到多线程效果。如下,

sleep 10 #等待10秒,再继续下一操作
sleep 10 & #当前shell不等待,后台子shell等待  

2. wait命令

  wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用wait可以在bash脚本“多进程”执行模式下,起到一些特殊控制的作用。

wait  [作业指示或进程号]

  eg:wait 23   or  wait %1

1.等待作业号或者进程号制定的进程退出,返回最后一个作业或进程的退出状态状态。如果没有制定参数,则等待所有子进程的退出,其退出状态为0.

2.如果是shell中等待使用wait,则不会等待调用函数中子任务。在函数中使用wait,则只等待函数中启动的后台子任务。

3.在shell中使用wait命令,相当于高级语言里的多线程同步。

example:

1.使用wait等待所有子任务结束。

#!/bin/sh
echo “1”
sleep 5&
echo “3”
echo “4”
wait  #会等待wait所在bash上的所有子进程的执行结束,本例中就是sleep 5这句
输出:echo”5”  

2.在函数中使用wait

#!/bin/bash
source ~/.bashrc  fun(){  echo "fun is begin.timeNum:$timeNum"  local timeNum=$1  sleep $timeNum &  wait #这个只等待wait前面sleep  echo "fun is end.timeNum:$timeNum"
}  fun 10 &
fun 20 &  wait #如果fun里面没有wait,则整个脚本立刻退出,不会等待fun里面的sleep
echo "all is ending"  

输出结果为:

fun is begin.timeNum:10
fun is begin.timeNum:20
fun is end.timeNum:10
fun is end.timeNum:20
all is ending  

转载于:https://www.cnblogs.com/xiaofeiIDO/p/6170199.html

[linux] 线程和wait命令,sleep命令相关推荐

  1. 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 free命令 ps命令 查看网络状态 linux下抓包 --- 监控io性能 查看磁盘 iostat 和sar属 ...

  2. linux 阶段作业领导者,Linux入职基础-5.22_命令ps显示进程状态(应用实战6)

    命令ps显示进程状态(应用实战6) 简介: 由于一个应用程序可能需要启动多个进程,所以在同等情况下,进程的数量要比程序多.要对进程进行监测和控制,首先必须要了解当前进程的情况,而 ps 命令就是非常强 ...

  3. Linux常见的一些性能监控命令

    文章目录 全局监控 top CPU监控 uptime 内存监控 free vmstat 磁盘监控 df iostat 网络监控 netstat 进程监控 ps lsof 在我们使用Linux进行开发. ...

  4. linux最常用的20条命令

    玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下 ...

  5. linux常用调试,linux下gdb常用的调试命令

    用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法.接下来是小编为大家收集的linux下gdb常用的调试命令,希望能帮到大家. linux下gdb常用的调试命令 ...

  6. Linux有哪些目录命令,linux最常用的20个命令有哪些

    原标题:linux最常用的20个命令有哪些 1.find 查找文件或目录 find / -size +204800k //在根目录下查找大于200MB的文件 find / -user username ...

  7. 14.Linux rpm,brew软件安装包命令,zsh和bash,内置命令和外部命令,ps命令,top命令解析,swp,为什么cpu利用率很低,负载却很高?

    解释一下rpm, opt,opt-get, brew,brewhome rpm,apt,apt-get,brew,和homebrew都是与软件包管理有关的术语.它们分别用于不同的操作系统. rpm是一 ...

  8. Linux运维02:top命令详解

    系列专题:Linux运维入门教程 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.         下面详细介绍它的使用方法.t ...

  9. linux下载命令wget命令详解

    wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例如: # wget http://www.linuxsense.org/xxxx/xxx. ...

  10. 【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ

    实现自己既定的目标,必须能耐得住寂寞单干 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.y ...

最新文章

  1. ESXI GLusterFS ISCSI 构建低端虚拟化解决方案
  2. BCH社区为比特币现金的发展买单
  3. sklearn中分类器的比较
  4. 决策树-基于不同算法的决策树模型对比
  5. 2013\National _C_C++_A\5.网络寻路
  6. 异构服务器 微服务_Spring Cloud Alibaba Sidecar 多语言微服务异构
  7. 【数据结构与算法】平方探测法散列表的Java实现
  8. VS2013创建opencv-2.4.10静态链接库
  9. MongoDB-Getting Started with the C# Driver
  10. 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
  11. ActiveMQ not running
  12. linux lsnrctl命令不存在,lsnrctl使用大全
  13. 一个五年架构师凭什么基本年薪酬就可以达到50万
  14. MAC电脑删除系统自带的软件
  15. 逆地理编码-离线版-part2
  16. AWS-EC2多弹性ip配置
  17. 医学图像分割数据集与制作自己的数据集
  18. 华为备胎除了鸿蒙还有什么,硬件有备胎软件也有!华为鸿蒙操作系统曝光:或可取代安卓Win...
  19. 王坚:阿里巴巴为什么会“去IOE”(一) | 《商业价值》杂志
  20. 考研线性代数:矩阵的合同关系,合同对角化以及一些坑

热门文章

  1. .jQuery文档分析4-文档处理
  2. Hadoop供应商MapR:先上市, “不久之后”就会盈利
  3. IO之流程与buffer概览
  4. [转]程序员趣味读物:谈谈Unicode编码
  5. velocity mybatis spring 在maven的整合开发(二)
  6. [论文收集] ICSOC 2008 论文
  7. 怎么样才能让自己自律起来_一个人如何才能高度自律(深度好文)
  8. 如何在java中调用js方法
  9. HTML DOM Event 对象
  10. 防重复请求处理的实践与总结