下面給大家介紹的關于實現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循環 往 fifo管道文件中寫入13個空行 done >&6 for i in `seq 100`;do # 100 次 for 循環 開始 read -u6 # 從文件描述符6中讀取行(實際指向fifo管道) { echo $i # 打印 i sleep 3 # 暫停3秒 echo >&6 # 再次往fifo管道文件中寫入一個空行。 } & # {} 這部分語句被放入后臺作為一個子進程執行,所以不必每次等待3秒后執行 #下一個,這部分的echo $i幾乎是同時完成的,當fifo中13個空行讀完后 for循環 # 繼續等待 read 中讀取fifo數據,當后臺的13個子進程等待3秒后,按次序 # 排隊往fifo輸入空行,這樣fifo中又有了數據,for語句繼續執行 pid=$! #打印最后一個進入后臺的子進程id echo $pid done wait exec 6>&- #刪除文件描述符6 exit 0 以上關于實現Linux BASH多進程并行處理的方法詳解就是小編為大家收集整理的全部內容了,希望對大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續關注我們的后續更新。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信