阻塞模式与非阻塞模式并发数小于500,超过了会造成网站非常的不流畅,小于的话还可以接受
做少量并发还是建议用 非阻塞模式
测试环境:thinkphp5.0+wamp
非阻塞模式
结构代码
public function index(){
$fp = fopen("lock.txt", "w+");
if(flock($fp,LOCK_EX,LOCK_EX))
{
// 处理商品数据
flock($fp,LOCK_UN);
}
fclose($fp);
}
结构代码,与阻塞模式不同的地方 LOCK_NB (如果不希望 flock() 在锁定时堵塞,则给 lock 加上 LOCK_NB)总结:
1.相比阻塞模式的时间等待,非阻塞模式则更加人性化很多
2.如果有有很多人都进入抢购,人太多就会直接进入第二个动作(“抢购失败界面”)。部分人就会进入第一个动作(“抢购候选名单”), 下一个步骤1.抢购成功 或者2 抢购失败
并发测试工具
咨询请加群:101766150
thinkphp解决并发详解一:阻塞模式
http://www.thinkphp.cn/code/2984.html
thinkphp解决并发详解二:非阻塞模式
http://www.thinkphp.cn/code/2986.html