下面給大家介紹的關(guān)于實(shí)現(xiàn)Linux BASH多進(jìn)程并行處理的方法詳解,你可能還不知道,下面我門一起來看看,希望對(duì)需要的朋友有所幫助! #!/bin/bashSEND_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管道文件中寫入13個(gè)空行 done >&6 for i in `seq 100`;do # 100 次 for 循環(huán) 開始 read -u6 # 從文件描述符6中讀取行(實(shí)際指向fifo管道) { echo $i # 打印 i sleep 3 # 暫停3秒 echo >&6 # 再次往fifo管道文件中寫入一個(gè)空行。 } & # {} 這部分語句被放入后臺(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語句繼續(xù)執(zhí)行 pid=$! #打印最后一個(gè)進(jìn)入后臺(tái)的子進(jìn)程id echo $pid done wait exec 6>&- #刪除文件描述符6 exit 0 以上關(guān)于實(shí)現(xiàn)Linux BASH多進(jìn)程并行處理的方法詳解就是小編為大家收集整理的全部?jī)?nèi)容了,希望對(duì)大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續(xù)關(guān)注我們的后續(xù)更新。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信