这篇文章主要为大家展示了“PHP中Libevent 扩展有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中Libevent 扩展有什么用”这篇文章吧
这篇文章主要为大家展示了“PHP中Libevent 扩展有什么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中Libevent 扩展有什么用”这篇文章吧。
libevent是一个事件触发的网络库,适用于windows、linux、freebsd等多种平台,内部使用select、poll、epoll、kqueue等系统调用管理事件机制。Libevent是跨平台的,而且具有非凡的性能。与nodejs一样是事件驱动的;官方网站:Http://libevent.org/
最新的稳定版本
https://github.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
主要模块:
事件处理框架
事件引擎模块
Buffer管理模块
信号处理模块
php本身不支持多线程,php不能很好实现并发机制。Pecl提供的pcntl(进程控制)、libevent扩展、socket包、stream系统函数,可以使用php轻易地开发出高性能,高并发的网络应用程序。
简单应用事例:Pcntl fork n个worker。master process 得到请求后,处理信息发送给worker程序 、worker处理完后回传给client。Master process 可以跟据并发量,来设定worker的数量,即n的大小,并monitor(监控)worker的数据,在不足时启动更多的进程。同nginx原理。
附:Php网络编程框架
http://code.google.com/p/swoole/downloads/list
http server可以说是libevent的经典应用。可以从libevent当中找到http的标准写法,非阻塞的http server也就是Socket处理与http协议处理缠绕。
学习libevent有助于提升程序设计功力,除了网络程序设计方面外,Libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、C语言的多态支持、链表和堆等等,都有助于提升自身的程序功力[1]。
对请求的处理的三种类型:
1、 connection input fork a new process
2、 connection input pthread_create
3、 connection input throw a Event-based array; main process do nonblocking things;
Curl –O https://GitHub.com/downloads/libevent/libevent/libevent-2.0.16-stable.tar.gz
Tar –zxvf libevent-2.0.16-stable.tar.gz
Cd libevent-2.0.16-stable
/usr/local/php/bin/phpize
./configure
make
make install
vi /usr/local/php/etc/php.ini
extension_dir=””;
extension=libevent.so
php –m | grep lib
安装成功
以上是“PHP中Libevent 扩展有什么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网PHP编程频道!
--结束END--
本文标题: PHP中Libevent 扩展有什么用
本文链接: https://lsjlt.com/news/83683.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0