指定关键词排名优化,电影网站如何做seo优化,著名的营销成功的案例,amh wordpress 后台404http://blog.csdn.net/shuanghujushi/article/details/38186303最近在使用shell做一些部署工作#xff0c;在使用过程中#xff0c;效率一直不高。想提高效率#xff0c;经过分析发现#xff0c;并不是所有操作都是需要串行的#xff0c;一些操作是可以进行并行操作的。经…http://blog.csdn.net/shuanghujushi/article/details/38186303最近在使用shell做一些部署工作在使用过程中效率一直不高。想提高效率经过分析发现并不是所有操作都是需要串行的一些操作是可以进行并行操作的。经过学习shell里面也是可以进行多线程编程的而且十分方便同时wait命令可以进行shell的多线程同步控制。下面是shell多线程和wait命令的一些学习体会。错误之处还请大家指正。
一、启动后台子任务在执行命令后加操作符表示将命令放在子shell中异步执行。可以达到多线程效果。如下[plain] view plain copysleep 10 #等待10秒再继续下一操作 sleep 10 #当前shell不等待后台子shell等待 二、wait命令介绍wait [作业指示或进程号]1.等待作业号或者进程号制定的进程退出返回最后一个作业或进程的退出状态状态。如果没有制定参数则等待所有子进程的退出其退出状态为0.2.如果是shell中等待使用wait则不会等待调用函数中子任务。在函数中使用wait则只等待函数中启动的后台子任务。3.在shell中使用wait命令相当于高级语言里的多线程同步。三、例子
1.使用wait等待所有子任务结束。
[plain] view plain copy#!/bin/bash sleep 10 sleep 5 wait #等待10秒后退出 [plain] view plain copy#!/bin/bash sleep 10 sleep 5 wait $! #$!表示上个子进程的进程号wait等待一个子进程等待5秒后退出 2.在函数中使用wait
[plain] view plain copy#!/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 输出结果为[plain] view plain copyfun is begin.timeNum:10 fun is begin.timeNum:20 fun is end.timeNum:10 fun is end.timeNum:20 all is ending 从输出结果可以看到整个脚本等待了所有子任务的退出