[linux] 线程和wait命令,sleep命令
在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命令相关推荐
- 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包
2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 free命令 ps命令 查看网络状态 linux下抓包 --- 监控io性能 查看磁盘 iostat 和sar属 ...
- linux 阶段作业领导者,Linux入职基础-5.22_命令ps显示进程状态(应用实战6)
命令ps显示进程状态(应用实战6) 简介: 由于一个应用程序可能需要启动多个进程,所以在同等情况下,进程的数量要比程序多.要对进程进行监测和控制,首先必须要了解当前进程的情况,而 ps 命令就是非常强 ...
- Linux常见的一些性能监控命令
文章目录 全局监控 top CPU监控 uptime 内存监控 free vmstat 磁盘监控 df iostat 网络监控 netstat 进程监控 ps lsof 在我们使用Linux进行开发. ...
- linux最常用的20条命令
玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.当然你也可以在使用时去找一下 ...
- linux常用调试,linux下gdb常用的调试命令
用gdb调试程序时,常常很困惑一些命令的使用,要么是不知道这个命令,要么忘了命令的使用方法.接下来是小编为大家收集的linux下gdb常用的调试命令,希望能帮到大家. linux下gdb常用的调试命令 ...
- Linux有哪些目录命令,linux最常用的20个命令有哪些
原标题:linux最常用的20个命令有哪些 1.find 查找文件或目录 find / -size +204800k //在根目录下查找大于200MB的文件 find / -user username ...
- 14.Linux rpm,brew软件安装包命令,zsh和bash,内置命令和外部命令,ps命令,top命令解析,swp,为什么cpu利用率很低,负载却很高?
解释一下rpm, opt,opt-get, brew,brewhome rpm,apt,apt-get,brew,和homebrew都是与软件包管理有关的术语.它们分别用于不同的操作系统. rpm是一 ...
- Linux运维02:top命令详解
系列专题:Linux运维入门教程 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. 下面详细介绍它的使用方法.t ...
- linux下载命令wget命令详解
wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 + 要下载文件的url路径 例如: # wget http://www.linuxsense.org/xxxx/xxx. ...
- 【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ
实现自己既定的目标,必须能耐得住寂寞单干 本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.y ...
最新文章
- ESXI GLusterFS ISCSI 构建低端虚拟化解决方案
- BCH社区为比特币现金的发展买单
- sklearn中分类器的比较
- 决策树-基于不同算法的决策树模型对比
- 2013\National _C_C++_A\5.网络寻路
- 异构服务器 微服务_Spring Cloud Alibaba Sidecar 多语言微服务异构
- 【数据结构与算法】平方探测法散列表的Java实现
- VS2013创建opencv-2.4.10静态链接库
- MongoDB-Getting Started with the C# Driver
- 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
- ActiveMQ not running
- linux lsnrctl命令不存在,lsnrctl使用大全
- 一个五年架构师凭什么基本年薪酬就可以达到50万
- MAC电脑删除系统自带的软件
- 逆地理编码-离线版-part2
- AWS-EC2多弹性ip配置
- 医学图像分割数据集与制作自己的数据集
- 华为备胎除了鸿蒙还有什么,硬件有备胎软件也有!华为鸿蒙操作系统曝光:或可取代安卓Win...
- 王坚:阿里巴巴为什么会“去IOE”(一) | 《商业价值》杂志
- 考研线性代数:矩阵的合同关系,合同对角化以及一些坑