国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > Linux Shell > 正文

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

2020-07-27 19:26:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

#!/bin/bash

SEND_THREAD_NUM=13
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
for ((i=0;i<$SEND_THREAD_NUM;i++));do
echo # for循環(huán) 往 fifo管道文件中寫(xiě)入13個(gè)空行
done >&6

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

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

pid=$! #打印最后一個(gè)進(jìn)入后臺(tái)的子進(jìn)程id
echo $pid

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

exit 0

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜南县| 定陶县| 长泰县| 乌拉特后旗| 天镇县| 历史| 宁阳县| 监利县| 安远县| 吉安县| 崇阳县| 定安县| 宜州市| 浏阳市| 新乐市| 永修县| 清苑县| 宝丰县| 松滋市| 乐昌市| 德钦县| 武义县| 呼伦贝尔市| 定结县| 镇远县| 龙川县| 旌德县| 河北省| 禹城市| 阿坝县| 佛冈县| 栾城县| 牟定县| 耿马| 称多县| 平凉市| 双辽市| 留坝县| 伊川县| 灵丘县| 海安县|