日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[shell进阶]——shell多线程

發(fā)布時間:2024/4/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [shell进阶]——shell多线程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于shell的多線程

1. 多線程并發(fā)執(zhí)行任務(wù),而不用一臺臺的串行執(zhí)行,能更快更高效

2. Shell并沒有多線程的概念,所以:

? ? * 一般使用wait、read等命令技巧性地模擬多線程實

? ? * 使用命名管道(fifo)來實現(xiàn)多線程的控制

3. 用途:需要對多主機批量執(zhí)行檢查或操作時(例如ssh、ping等操作)

?

分段解析一個例子來理解一個多線程腳本的書寫

1. 新建fifo類型文件

tmp_fifofile="/tmp/$$.fifo" mkfifo $tmp_fifofile #新建fifo類型的文件 exec 5<>$tmp_fifofile #將fd 5指向fifo類型 rm $tmp_fifofile #可刪除 #這里的$$.fifo/5都是一個文件名而已,可隨意

2. 定義線程數(shù),循環(huán)鍵入字符,通過字符控制實現(xiàn)線程數(shù)量控制

thread=5 # $thread 定義的是線程數(shù),thread=5的意思是每次最多同時執(zhí)行5個線程 #寫一個for循環(huán)隨便echo個字符在5這個文件中,實際上我們就是通過對這個字符的數(shù)量控制來實現(xiàn)對線程數(shù)量的控制的 for ((i=0;i<$thread;i++)) do echo done >&5

3. 執(zhí)行任務(wù)

# read -u <fd>命令的意義是:read input from file descriptor fd. 讀取來自文件描述符fd的輸入 # 實際上我們是通過“read -u 5”來實現(xiàn)每次從5中減去一個字符,job_num=20 # $job_num定義了總的任務(wù)數(shù) for ((i=0;i<$job_num;i++)) do read -u5{sleep 3 && echo "Hello World" || echo "Hello error"......                      ===>這些部分就是我們要執(zhí)行的命令,可封裝成函數(shù)......echo >&5 #多加回一個字符 }& done

4. 等待、關(guān)閉、退出

wait #等待所有子進程結(jié)束 exec 5>&- #關(guān)閉fd 5 exit 0 #成功退出

5. 執(zhí)行結(jié)果

我們的job_num有20個,thread定義了5個 即每5個每5個這樣執(zhí)行 一共需要執(zhí)行4次(單線程就要執(zhí)行20次了) 每次執(zhí)行是3s,所以共花費3*4=12s# time sh dxc.sh Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello Worldreal 0m12.064s user 0m0.020s sys 0m0.042s

?

參考文章

使用shell腳本(bash腳本)模擬多線程

Shell多線程腳本

阮一峰-進程線程的簡單解釋

轉(zhuǎn)載于:https://www.cnblogs.com/snsdzjlz320/p/7238998.html

總結(jié)

以上是生活随笔為你收集整理的[shell进阶]——shell多线程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。