欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux BASH多進程并行處理的方法實現(xiàn)

 更新時間:2013年01月23日 14:56:44   作者:  
Linux下BASH多進程并行處理的實現(xiàn)代碼,需要的朋友可以參考下

復制代碼 代碼如下:

#!/bin/bash

SEND_THREAD_NUM=13
tmp_fifofile="/tmp/$$.fifo" # 腳本運行的當前進程ID號作為文件名
mkfifo “$tmp_fifofile" # 新建一個隨機fifo管道文件
exec 6<>"$tmp_fifofile" # 定義文件描述符6指向這個fifo管道文件
rm $tmp_fifofile
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循環(huán) 往 fifo管道文件中寫入13個空行
done >&6

for i in `seq 100`;do # 100 次 for 循環(huán) 開始
read -u6 # 從文件描述符6中讀取行(實際指向fifo管道)
{
echo $i # 打印 i
sleep 3 # 暫停3秒
echo >&6 # 再次往fifo管道文件中寫入一個空行。
} &

# {} 這部分語句被放入后臺作為一個子進程執(zhí)行,所以不必每次等待3秒后執(zhí)行
#下一個,這部分的echo $i幾乎是同時完成的,當fifo中13個空行讀完后 for循環(huán)
# 繼續(xù)等待 read 中讀取fifo數(shù)據(jù),當后臺的13個子進程等待3秒后,按次序
# 排隊往fifo輸入空行,這樣fifo中又有了數(shù)據(jù),for語句繼續(xù)執(zhí)行

pid=$! #打印最后一個進入后臺的子進程id
echo $pid

done
wait
exec 6>&- #刪除文件描述符6

exit 0

相關文章

最新評論