shell类似线程数组操作

2019-06-22  本文已影响0人  悟剑声
#!/bin/bash

//通过管道的记录和读写 相当于实现了线程数组或者算是线程池
//总操作次数,和同时存在线程数
THREAD_NUM=100000
THREAD_ARRAY=80

//创建并标识管道
Tmp=tmp
Res=result.log

rm -f $Tmp
rm -f $Res
mkfifo tmp 

exec 9<>tmp

//向管到添加内容 通过读写实现在线线程数的稳定
for(( i=0; i<$THREAD_ARRAY; i++))
do
    echo -ne "\n" 1>&9
done

echo "running... $(date +%s%N)"

//按照总次数操作线程
for(( i=0; i<$THREAD_NUM; i++))
do
{
    read -u 9
    {   
        sleep 1
        echo "running....."
        echo -ne "\n" 1>&9
    }&
}
done
wait

echo "exec end. $(date +%s%N)"
上一篇下一篇

猜你喜欢

热点阅读