如何限制bash中函数中使用的线程/子进程数
发布时间:2020-12-15 19:32:40 所属栏目:安全 来源:网络整理
导读:我的问题是如何改变这个代码,所以它只会使用4个线程/子进程? TESTS="a b c d e"for f in $TESTS; do t=$[ ( $RANDOM % 5 ) + 1 ] sleep $t echo $f $t donewait 有趣的问题我试图用xargs这个,我找到了一种方法。 尝试这个: seq 10 | xargs -i --max-proc
我的问题是如何改变这个代码,所以它只会使用4个线程/子进程?
TESTS="a b c d e" for f in $TESTS; do t=$[ ( $RANDOM % 5 ) + 1 ] sleep $t && echo $f $t & done wait
有趣的问题我试图用xargs这个,我找到了一种方法。
尝试这个: seq 10 | xargs -i --max-procs=4 bash -c "echo start {}; sleep 3; echo done {}" –max-procs = 4将确保一次运行不超过四个子进程。 输出将如下所示: start 2 start 3 start 1 start 4 done 2 done 3 done 1 done 4 start 6 start 5 start 7 start 8 done 6 done 5 start 9 done 8 done 7 start 10 done 9 done 10 请注意,执行顺序可能不遵循您提交的顺序的命令。正如你可以看到2从1开始。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |