PHP编程中尝试程序并发的几种方式总结
来源:互联网 发布:java搭建个人博客系统 编辑:程序博客网 时间:2024/06/05 03:20
本文大约总结了PHP编程中的五种并发方式:
1.curl_multi_init
文档中说的是 Allows the processing of multiple cURL handles asynchronously. 确实是异步。这里需要理解的是select这个方法,文档中是这么解释的Blocks until there is activity on any of the curl_multi connections.。了解一下常见的异步模型就应该能理解,select, epoll,都很有名
这里我设置的是,select得到结果,就退出循环,并且删除 curl resource, 从而达到取消http请求的目的。
2.swoole_client
swoole_client提供了异步模式,我竟然把这个忘了。这里的sleep方法需要swoole版本大于等于1.7.21, 我还没升到这个版本,所以直接exit也可以。
3.process
哎,竟然差点忘了 swoole_process, 这里就不用 pcntl 模块了。但是写完发现,这其实也不算是中断请求,而是哪个先到读哪个,忽视后面的返回值。
4.pthreads
编译pthreads模块时,提示php编译时必须打开ZTS, 所以貌似必须 thread safe 版本才能使用. wamp中多php正好是TS的,直接下了个dll, 文档中的说明复制到对应目录,就在win下测试了。 还没完全理解,查到文章说 php 的 pthreads 和 POSIX pthreads是完全不一样的。代码有些烂,还需要多看看文档,体会一下。
5.yield
以同步方式书写异步代码:
代码解读:
借助PHP内置array能力,实现简单的“超时管理”,以毫秒为精度作为时间分片;
封装AsyncSendRecv接口,调用形如yield AsyncSendRecv(),更加自然;
添加Exception作为错误处理机制,添加ret_code亦可,仅为展示之用。
文章来源:http://www.jb51.net/article/81245.htm
- PHP编程中尝试程序并发的几种方式总结
- php 中POST的几种方式
- PHP中跳出循环的几种方式的简单总结
- 理解并发编程中的几种并发方式
- 几种在并发编程中使用的集合
- paip.程序调试的几种方式大总结
- 事件处理程序的几种方式总结
- 微信小程序实现跳转的几种方式总结
- 数组的几种常见排序方式总结(Java程序)
- 高并发软件设计的几种方式
- PHP 中自定义函数的几种方式
- php中遍历二维数组的几种方式
- php中删除数组元素的几种方式
- php中遍历二维数组的几种方式
- php中遍历二维数组的几种方式
- php中输出json数据的几种方式
- php中遍历二维数组的几种方式
- php中遍历二维数组的几种方式
- margin auto 实现居中,与text-align:center的区别
- ActiveMQ(4)-发布订阅
- 输出一个倒三角形
- poj 1328 Radar Installation【贪心】【刷题计划】
- 关于引用数据类型的形参与实参讨论
- PHP编程中尝试程序并发的几种方式总结
- 简单数组
- 指针3
- 判断是不是闰年
- QNX支持的BSP包QNX os supported board(ARM+MIPS+POWERPC+X86)
- u-boot移植--6、修改默认配置参数
- 学习Dojo笔记
- Shell脚本语法---在Makefile等文件
- 求出1到10,20到30和35到45的和?