最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell中實現(xiàn)“多線程”執(zhí)行腳本文件完美解決方案

 更新時間:2014年12月23日 10:25:21   投稿:junjie  
這篇文章主要介紹了Shell中實現(xiàn)“多線程”執(zhí)行腳本文件完美解決方案,本文是針對一次調(diào)用執(zhí)行多個腳本文件并分批執(zhí)行的一個解決方法的測試和總結(jié),需要的朋友可以參考下

即比如我有100個可執(zhí)行文件,互相間沒有特別的先后執(zhí)行關(guān)系,如CODE:

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

job_1
job_2
job_2
.....
job_100

想用csh/bash來多線程調(diào)用執(zhí)行。

比如一次開5個線程,那么job_1,2,3,4,5一起先開始,那么其中任何一個線程如果先執(zhí)行完成,則繼續(xù)執(zhí)行下一個沒有初執(zhí)行過的文件,如job_6,7,8....,這樣一直以所指定的線程數(shù)來執(zhí)行所有100個文件。

我本來想用 "&" 來放入后臺,可是這樣我一次可以指定5放入后臺,但是無法知道其中任何一個程序何時執(zhí)行完畢,所以也無法繼續(xù)執(zhí)行下一個程序啊!

完美解決方案:

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

-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=6718 $?=0] ; cat job_1
#!/bin/bash
n=$((RANDOM % 5 + 1))
echo "$0 sleeping for $n seconds ..."
sleep $n
echo "$0 exiting ..."
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=6718 $?=0] ; for ((i = 2; i <= 10; ++i)); do cp job_1 job_$i; done
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=6718 $?=0] ; cat jobs.sh
#!/bin/bash
nParellel=5
nJobs=10
sJobPattern='./job_%d'
aJobs=()
sNextJob=
for ((iNextJob = 1; iNextJob <= nJobs; )); do
    for ((iJob = 0; iJob < nParellel; ++iJob)); do
        if [ $iNextJob -gt $nJobs ]; then
            break;
        fi
        if [ ! "${aJobs[iJob]}" ] || ! kill -0 ${aJobs[iJob]} 2> /dev/null; then
            printf -v sNextJob "$sJobPattern" $((iNextJob++))
            echo "$sNextJob starting ..."
            $sNextJob &
            aJobs[iJob]=$!
        fi
    done
    sleep .1
done
wait
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=6718 $?=0] ; ./jobs.sh
./job_1 starting ...
./job_1 sleeping for 3 seconds ...
./job_2 starting ...
./job_2 sleeping for 2 seconds ...
./job_3 starting ...
./job_3 sleeping for 5 seconds ...
./job_4 starting ...
./job_5 starting ...
./job_4 sleeping for 4 seconds ...
./job_5 sleeping for 2 seconds ...
./job_2 exiting ...
./job_6 starting ...
./job_6 sleeping for 2 seconds ...
./job_5 exiting ...
./job_7 starting ...
./job_7 sleeping for 1 seconds ...
./job_1 exiting ...
./job_8 starting ...
./job_8 sleeping for 3 seconds ...
./job_7 exiting ...
./job_9 starting ...
./job_9 sleeping for 5 seconds ...
./job_4 exiting ...
./job_6 exiting ...
./job_10 starting ...
./job_10 sleeping for 5 seconds ...
./job_3 exiting ...
./job_8 exiting ...
./job_9 exiting ...
./job_10 exiting ...
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[$$=6718 $?=0] ; bye

相關(guān)文章

  • Linux ls命令操作詳解

    Linux ls命令操作詳解

    通過 ls 命令,我們可以查看指定目錄下的文件和子目錄,并結(jié)合不同的選項獲取詳細(xì)的文件信息,如權(quán)限、大小、修改時間等,這篇文章主要介紹了Linux ls命令詳解,需要的朋友可以參考下
    2025-04-04
  • Shell 批量進(jìn)程判斷是否存在

    Shell 批量進(jìn)程判斷是否存在

    本文主要介紹了Shell 批量進(jìn)程判斷是否存在,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解sed?-i?命令入門教程

    詳解sed?-i?命令入門教程

    這篇文章主要介紹了sed?-i?命令入門教程,sed?本身是一個非常復(fù)雜的工具,有專門的書籍講解?sed?的具體用法,網(wǎng)上也有很多關(guān)于?sed?的教程,我也是抱著學(xué)習(xí)的心態(tài)來學(xué)習(xí)?sed?的常見的用法,并進(jìn)行系統(tǒng)的總結(jié),內(nèi)容基本覆蓋了?sed?的大部分的知識點(diǎn)
    2022-06-06
  • Linux中SELinux、Shell簡介、touch命令的應(yīng)用小結(jié)

    Linux中SELinux、Shell簡介、touch命令的應(yīng)用小結(jié)

    SELinux(Security-Enhanced Linux)是美國國家安全局(NSA)對于強(qiáng)制訪問控制的實現(xiàn),是Linux歷史上最杰出的新安全子系統(tǒng),這篇文章主要介紹了Linux中SELinux、Shell簡介、touch命令的應(yīng)用知識總結(jié),需要的朋友可以參考下
    2023-02-02
  • 1 秒內(nèi)啟動Linux的方法

    1 秒內(nèi)啟動Linux的方法

    這篇文章主要介紹了 1 秒內(nèi)啟動linux的方法,需要的朋友可以參考下
    2015-12-12
  • shell中長命令的換行處理方法示例

    shell中長命令的換行處理方法示例

    這篇文章主要給大家介紹了關(guān)于shell中長命令的換行處理方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用shell具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Linux實現(xiàn)徹底清理空文件夾的方法詳解

    Linux實現(xiàn)徹底清理空文件夾的方法詳解

    這篇文章主要介紹了Linux實現(xiàn)徹底刪除指定路徑下的所有空文件夾。這里的空文件夾的認(rèn)定標(biāo)準(zhǔn)是:如果某個文件夾的子文件夾全是空文件夾,也認(rèn)為該文件夾是空文件夾,需要的可以參考一下
    2022-10-10
  • 分享70個經(jīng)典的 Shell 腳本面試題與答案

    分享70個經(jīng)典的 Shell 腳本面試題與答案

    我們?yōu)槟愕拿嬖嚋?zhǔn)備選擇了 70 個你可能遇到的 shell 腳本面試問題及解答。了解腳本或至少知道基礎(chǔ)知識對系統(tǒng)管理員來說至關(guān)重要,它也有助于你在工作環(huán)境中自動完成很多任務(wù)
    2018-02-02
  • Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹

    Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹

    這篇文章主要介紹了Shell腳本中的特殊字符(美元符、反斜杠、引號等)作用介紹,還包括其它特殊字符,需要的朋友可以參考下
    2015-05-05
  • shell腳本引用外部變量的兩種方法

    shell腳本引用外部變量的兩種方法

    本文主要介紹了shell腳本引用外部變量的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評論

大丰市| 汨罗市| 陆川县| 信丰县| 精河县| 平潭县| 延吉市| 涟水县| 安岳县| 景德镇市| 邻水| 肇东市| 贞丰县| 杨浦区| 江永县| 新竹市| 伊通| 肇州县| 宣汉县| 会泽县| 阿拉善右旗| 盐池县| 乌什县| 红河县| 嘉义市| 师宗县| 轮台县| 思南县| 白河县| 信宜市| 旌德县| 澳门| 江华| 包头市| 沅江市| 武义县| 叙永县| 大庆市| 开封县| 都江堰市| 乌拉特前旗|