shell 多线程并发执行
#线程数,这个进程数可以理解为在管道中占6个位置
thread_num=6
tmp_fifofile="/tmp/$
.
f
i
f
o
"
m
k
f
i
f
o
"
.fifo" mkfifo "
.fifo"mkfifo"{tmp_fifofile}"
exec 6<>"${tmp_fifofile}"
rm -f ${tmp_fifofile}
for ((a=1;a<=${thread_num};a++))
do
echo >&6
done;
#并发6个执行,第7个开始等待前6个某个执行完后执行
for ii in 1 2 3 4 5 6 7 8 9 ;do
read -u6
{
mkdir -p ${ii}
echo >&6
}&