当前位置: 主页 > 脚本 > Shell >

Linux shell 实现多线程

时间:2013-04-03 23:31来源:转载 作者:网络 点击:
在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少 任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


在bash中,使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少 任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。我们就先实现第一种情况:

实例一:正常情况脚本

 

linux <wbr>shell <wbr>实现多线程# !/bin/bash 
linux <wbr>shell <wbr>实现多线程 
linux <wbr>shell <wbr>实现多线程 for  ((i = 0 ;i < 5 ;i ++ )); do 
linux <wbr>shell <wbr>实现多线程         {
linux <wbr>shell <wbr>实现多线程                  sleep   3 ;echo  1 >> aa  &&  echo  " done! " 
linux <wbr>shell <wbr>实现多线程         } 
linux <wbr>shell <wbr>实现多线程 done
linux <wbr>shell <wbr>实现多线程 wait 
linux <wbr>shell <wbr>实现多线程 cat aa | wc  - l
linux <wbr>shell <wbr>实现多线程 rm aa

 

这种情况下,程序顺序执行,每个循环3s,共需15s左右。

 

linux <wbr>shell <wbr>实现多线程$  time  bash test . sh 
linux <wbr>shell <wbr>实现多线程 done ! 
linux <wbr>shell <wbr>实现多线程 done ! 
linux <wbr>shell <wbr>实现多线程 done ! 
linux <wbr>shell <wbr>实现多线程 done ! 
linux <wbr>shell <wbr>实现多线程 done ! 
linux <wbr>shell <wbr>实现多线程 5 
linux <wbr>shell <wbr>实现多线程
linux <wbr>shell <wbr>实现多线程 real    0m15 . 030s
linux <wbr>shell <wbr>实现多线程 user    0m0 . 002s
linux <wbr>shell <wbr>实现多线程 sys     0m0 . 003s

 

实例二:“多进程”实现

 

linux <wbr>shell <wbr>实现多线程# !/bin/bash 
linux <wbr>shell <wbr>实现多线程 
linux <wbr>shell <wbr>实现多线程 for  ((i = 0 ;i < 5 ;i ++ )); do 
linux <wbr>shell <wbr>实现多线程         {
linux <wbr>shell <wbr>实现多线程                  sleep   3 ;echo  1 >> aa  &&  echo  " done! " 
linux <wbr>shell <wbr>实现多线程         }  & 
linux <wbr>shell <wbr>实现多线程 done

转载请注明linux系统运维
http://www.linuxyw.com/linux/Shell/Shell/20130403/16.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片