下面給大家介紹的關于實現(xiàn)Linux BASH多進程并行處理的方法詳解,你可能還不知道,下面我門一起來看看,希望對需要的朋友有所幫助! #!/bin/bashSEND_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 以上關于實現(xiàn)Linux BASH多進程并行處理的方法詳解就是小編為大家收集整理的全部內(nèi)容了,希望對大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續(xù)關注我們的后續(xù)更新。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務,與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關注站長網(wǎng)微信