面试题答案
一键面试实现思路
- 确定合适的并行进程数:可以通过
nproc
命令获取系统的CPU核心数,以此为基础设置并行进程数,例如设为CPU核心数的一半,以避免系统资源耗尽。 - 使用
xargs
并行执行脚本:xargs
命令可以从标准输入读取数据,并将其作为参数传递给指定的命令。结合-P
参数可以设置并行执行的进程数。
Bash脚本
#!/bin/bash
# 获取CPU核心数的一半作为并行进程数
parallel_num=$(( $(nproc) / 2 ))
# 使用xargs并行处理任务ID
cat large_file.txt | xargs -P $parallel_num -I {} bash -c './process_task.sh {}'
在上述脚本中:
- 首先通过
nproc
获取CPU核心数,并计算出并行进程数parallel_num
。 - 然后使用
cat
命令读取large_file.txt
文件内容,并通过管道传递给xargs
。 xargs
的-P
参数设置并行进程数为parallel_num
,-I {}
指定替换字符串,将从文件中读取的每一行(任务ID)替换{}
,传递给process_task.sh
脚本执行。