使用Shell 模拟并发任务

使用 & 符号来实现

#! /bin/bash
start=`date +%s`
echo '开始执行'
for ((i=1;i<=300;i++))
do
{
curl 'http://www.baidu.com/'
echo "第:$i 个模拟操作执行结束"
}&

#用{}把循环体括起来,后加一个&符号,代表每次循环都把命令放入后台运行
#一旦放入后台,就意味着{}里面的命令交给操作系统的一个线程处理了
#循环了100次,就有100个&把任务放入后台,操作系统会并发1000个线程来处理
#这些任务

done

wait
#wait命令的意思是,等待(wait命令)上面的命令(放入后台的)都执行完毕了再
#往下执行。
#在这里写wait是因为,一条命令一旦被放入后台后,这条任务就交给了操作系统
#shell脚本会继续往下运行(也就是说:shell脚本里面一旦碰到&符号就只管把它
#前面的命令放入后台就算完成任务了,具体执行交给操作系统去做,脚本会继续
#往下执行),所以要在这个位置加上wait命令,等待操作系统执行完所有后台命令

end=`date +%s`
echo '性能测试执行完成'
echo "总耗时:`expr $end - $start`"