gpt4 book ai didi

linux - KSH:限制一次可以运行的线程数

转载 作者:太空宇宙 更新时间:2023-11-04 09:53:31 25 4
gpt4 key购买 nike

我有一个循环脚本,每次迭代都会调用一个在后台运行的线程,如下所示

xn_run_process.sh

...
for each in `ls ${INPUT_DIR}/MDX*.txt`
do
java -Xms256m -Xmx1024m -cp ${CLASSPATH} com.wf.xn.etcc.Main -config=${CONFIG_FILE}
...
for SCALE_PDF in `ls ${PROCESS_DIR}/*.pdf`
do
OUTPUT_AFP=${OUTPUT_DIR}/`basename ${SCALE_PDF}`
OUTPUT_AFP=`print ${OUTPUT_AFP} | sed s/pdf/afp/g`
${PROJ_DIR}/myscript.sh -i ${SCALE_PDF} -o ${OUTPUT_AFP} &
sleep 30
done
done

我这样做的时候,我只认为一次只有5个myscript.sh线程并发执行,然而事情变了,这个列表执行了30个线程,每个都相当繁重的过程。如何将并发进程数限制为 5?

最佳答案

虽然这在纯 shell 脚本中是可能的,但最简单的方法是使用并行化工具,如 GNU parallel 或 GNU make。生成文件示例:

SOURCES = ${SOME_LIST}
STAMPS = $(SOME_LIST:=.did-run-stamp)

all : $(STAMPS)

%.did-run-stamp : %
/full/path/myscript.sh -f $<

然后调用 make 作为 make -j 5

关于linux - KSH:限制一次可以运行的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com