亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Shell腳本模擬多線程功能分享

 更新時(shí)間:2014年11月28日 15:18:14   投稿:junjie  
這篇文章主要介紹了Shell腳本模擬多線程功能分享,本文直接給出實(shí)現(xiàn)代碼,代碼中有詳細(xì)的注釋,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

#!/bin/bash
function pinghost {
ping $1 -c 1 -w 10 |grep rtt|cut -d “/” -f6
}
tmp_fifofile=”/tmp/$.fifo”   # 腳本運(yùn)行的當(dāng)前進(jìn)程ID號(hào)作為文件名
mkfifo $tmp_fifofile         # 新建一個(gè)隨機(jī)fifo管道文件
exec 6<>$tmp_fifofile         # 定義文件描述符6指向這個(gè)fifo管道文件
rm $tmp_fifofile
thread=10
for ((i=0;i<$thread;i++));do   # for循環(huán) 往 fifo管道文件中寫(xiě)入10個(gè)空行
echo
done >&6
while read domain
do
read -u6                  # 從文件描述符6中讀取行(實(shí)際指向fifo管道)
{
pinghost ${domain};      # 執(zhí)行pinghost函數(shù)
echo >&6                      # 再次往fifo管道文件中寫(xiě)入一個(gè)空行。
}&                                  # 放到后臺(tái)執(zhí)行
done</home/miotour/ip.txt
wait                          #因?yàn)橹暗倪M(jìn)程都是后臺(tái)執(zhí)行,因此要有wait來(lái)等待所有的進(jìn)程都執(zhí)行完畢后才算整個(gè)腳本跑完。
exec 6>&-                #刪除文件描述符6
exit 0

說(shuō)明:{} 這部分語(yǔ)句被放入后臺(tái)作為一個(gè)子進(jìn)程執(zhí)行,這部分幾乎是同時(shí)完成的,當(dāng)fifo中10個(gè)空行讀完后 while循環(huán)
繼續(xù)等待 read 中讀取fifo數(shù)據(jù),當(dāng)后臺(tái)的10個(gè)子進(jìn)程后,按次序排隊(duì)往fifo輸入空行,這樣fifo中又有了數(shù)據(jù),for語(yǔ)句繼續(xù)執(zhí)行。

相關(guān)文章

最新評(píng)論