关闭

curl_init()和curl_multi_init()多线程的速度比较

php中curl_init()的作用很大,尤其是在抓取网页内容或文件信息的时候,例如之前文章curl获得header检测GZip压缩的源代码就介绍到curl_init()的强大。 curl_init()处理事物是单线程模式,如果需要对事务处理走多线程模式,那么php里提供了一个函数curl_multi_init()给我们,这就是多线程模式处理事务的函数。 curl_init()与cur...
阅读(106) 评论(0)

php模拟并发

并发请求理论描述:假设有一个client,程序逻辑是要请求三个不同的server,处理各自的响应。传统模型当然是顺序执行,先发送第一个请求,等待收到响应数据后再发送第二个请求,以此类推。就像是单核CPU,一次只能处理一件事,其他事情被暂时阻塞。而并发模式可以让三个server同时处理各自请求,这就可以使大量时间复用。 画个图更好说明问题: 前者为阻塞模式,忽略请求响应等时间,总耗时为700...
阅读(179) 评论(0)

php 高并发解决(商城抢购问题2)

方案一:使用消息队列来实现 可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧 比如有100张票可供用户抢,那么就可以把这100张票放到缓存中,读写时不要加锁。 当并发量大的时候,可能有500人左右抢票成功,这样对于500后面的请求可以直接转到活动结束的静态页面。进去的500个人中有400个人是不可能获得商品的。所以可以根据进入队列的先后顺序只能前100个人购买成功。...
阅读(571) 评论(0)

php 高并发解决(商城抢购问题1)

最近在做一个团购项目,遇到个问题,就是在抢购、秒杀、抽奖等活动时,库存数量有限,但是同时下单人数超过了库存数量,就会导致商品超售问题。那么我们怎么来解决这个问题呢,我的思路如下:  sql1:查询商品库存 if(库存数量 > 0) {   //生成订单...   sql2:库存-1 } 当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段...
阅读(120) 评论(0)

php: CGI faseCGI PHP-FPM | laravel启动过程 | php依赖注入

(1)wish123 《laravel的启动过程》:http://www.cnblogs.com/wish123/p/4756669.html (2)veda《概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM》:http://www.nowamagic.net/librarys/veda/detail/1319 (3)田靖荣 《原来如此!一分钟了解什么是框架》:http...
阅读(360) 评论(0)

复习下单例设计模式(实现数据库连接,以免多次实例化)

php 2 class DBHelper 3 { 4 private $link; 5 static private $_instance; 6 7 // 连接数据库 8 private function __construct($host, $username, $password) 9 { 10 $this->link ...
阅读(404) 评论(0)

php中抽象类与接口的区别

1,抽象类继承extends    接口的继承implements 2,接口没有数据成员,但是抽象类有数据成员,而且可以进行封装 3,接口没有构造函数 4,接口中只能使用public修饰符,抽象类可以使用public,protected,private 5,一个类可以继承多个接口,但是只能继承一个抽象类。 例子:   interface staff_i1 //接口1 ...
阅读(75) 评论(0)
    个人资料
    • 访问:205411次
    • 积分:4439
    • 等级:
    • 排名:第6995名
    • 原创:227篇
    • 转载:142篇
    • 译文:0篇
    • 评论:13条