目录

Linux并行处理

目录

计算机有多个处理器,程序利用计算机多核的优势来加速执行。

使用&实现并行处理

1
2
3
4
5
6
7
8
9
#/bin/bash
#文件名: generate_checksums.sh
PIDARRAY=()
for file in File1.iso File2.iso
do
  md5sum $file &
  PIDARRAY+=("$!")
done
wait ${PIDARRAY[@]}
注意
注:wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用wait可以在bash脚本“多进程”执行模式下,起到一些特殊控制的作用。

使用time命令测试

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ time ./generate_checksums.sh
# 结果
real	0m0.391s
user	0m0.686s
sys	    0m0.077s
$ md5sum File1.iso File2.iso
# 结果
real	0m0.750s
user	0m0.641s
sys	    0m0.104s
1
2
3
4
5
$ ls *.iso | parallel md5sum
# 结果
real	0m0.653s
user	0m0.808s
sys	    0m0.272s
信息
说明:如果文件较多,使用 & 会在后台生成许多进程,那么就会影响系统运行。可使用 parallel 来实现, parallel 从标准输入里读取,将结果作为参数传递给后面的命令。