複製** **如下:
#!/bin/bash
function pinghost
tmp_fifofile=」/tmp/$.fifo」 # 指令碼執行的當前程序id號作為檔名
mkfifo $tmp_fifofile # 新建乙個隨機fifo管道檔案
exec 6<>$tmp_fifofile # 定義檔案描述符6指向這個fifo管道檔案
rm $tmp_fifofile
thread=10
for ((i=0;i
echo
done >&6
while read domain
doread -u6 # 從檔案描述符6中讀取行(實際指向fifowww.cppcns.com管道)
; # 執行pinghost函式
echo >&6 # 再次往fifo管道檔案中寫入乙個空行。
}& &nbswfozqcp; # 放到後台執行
done
wait #因為之前的程序都是後台執行,因此要有wait來等待所有的程序都執行完畢後才算整個指令碼跑完。
exec 6>&- #刪除檔案描述符程式設計客棧6
exit 0
說明:{} 這部分語句被放入後台作為乙個子程序執行,這部分幾乎是同時完成的,當fifo中10個空行讀完後 while迴圈
繼續等待 read 中讀取fifo資料,當後台的10個子程序後,按次序排隊往fifo輸入空行,這樣fifo中又有了資料,for語句繼續執行。
本文標題: shell指令碼模擬多執行緒功能分享
本文位址:
模擬多執行緒
用兩個執行緒玩猜數字遊戲,第乙個執行緒負責隨機給出1 100之間的乙個整數,第二個執行緒負責猜出這個數。要求每當第二個執行緒給出自己的猜測後,第乙個執行緒都會提示 猜小了 猜大了 或 猜對了 猜數之前,要求第二個執行緒要等待第乙個執行緒設定好要猜測的數。第乙個執行緒設定好猜測數之後,兩個執行緒還要相...
curl模擬多執行緒
開啟會話 設定會話引數 傳送請求 關閉控制代碼 請求鏈結 arr foreach arr as key url 執行curl會話 res curl exec ch 關閉curl會話並釋放資源 curl close ch 指令碼開始的毫秒時刻 start microtime true 鏈結陣列 arr...
模擬多人售票的多執行緒測試
01classlockdemocatch exception e 06 07tt.lockname vip clinet1 saler b was late for work,but 08 later is better than never 09newthread tt start 10 11 1...