Shell指令碼模擬多執行緒功能分享

2022-10-03 13:15:15 字數 916 閱讀 4737

複製** **如下:

#!/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...