日期:2014-05-16 浏览次数:20705 次
#10个线程
numWorders=10
#原始文件的行数
numAllPtn=`wc -l $rawPtnPath | awk '{print $1}'`
echo "numAllPtn:"$numAllPtn
#每个线程处理的行数
numPtnPerWorker=$[$numAllPtn/$numWorders+1]
echo "numPtnPerWorker:"$numPtnPerWorker
curBeg=0
curEnd=0
curNum=$numPtnPerWorker
#循环创建这些线程
for((i=1;i<=$numWorders;++i)); do
{
#当前线程处理的原文件的最后一行
curEnd=$[$curBeg+$numPtnPerWorker]
if [ $curEnd -gt $numAllPtn ]
then
curEnd=$numAllPtn
fi
#当前线程处理的原文件的行数
curNum=$[$curEnd-$curBeg]
echo "curEnd:"$curEnd" - curNum:"$curNum
curBeg=$curEnd
#当前线程处理后,写入的结果文件
curResPtnFile=$resPtnDir"/part_"$i
# call function,把当前线程要处理的原文件、结果文件、最后一行、行数作为参数传入
# WorkerFunc $rawPtnPath $curResPtnFile $curEnd $curNum
}
#}& # 问题就在这里!!
done