socket-使用php多线程,多进程??
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了socket-使用php多线程,多进程??,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3036字,纯文字阅读大概需要5分钟。
内容图文
![socket-使用php多线程,多进程??](/upload/InfoBanner/zyjiaocheng/152/ebc17e400bff4f90832b8444a4326343.jpg)
I. php 多进程的使用情况怎样?? (绝大多数php程序都用上了 | 几乎用不上)
II. php 多线程的使用情况怎样?? (绝大多数php程序都用上了 | 几乎用不上)
III. php 多进程 , php多线程 相比较 java 怎样??(简直糟透了 | 不相上下)
网络上几乎都写到 php 不适合多线程(是否也不适合多进程??),是否这样就不需要了解多线程,多进程之类的php相关特性了??
然后最近由于个人喜好,想自己动手做一个 类似qq的网页版聊天工具,现在 基本上了解了 socket 通信 , 但 了解了下 workerman 这样的开源 通信框架,他的特性介绍里面包括以下几个:
I. php多进程 可以发挥多核cpu优势,提高性能,并支持高并发??
II . php单个进程可以支持几千甚至几万的并发连接,多进程则可以支持数十万甚至上百万的并发连接。 这句话该怎么理解?? 由于它采用的是 socket 的方式进行通信,那么端口数实际上是已经固定的,不会超过 65536 ,一个端口表示一对连接,这边说的 几千 -》 几万可能还好一点, 多进程下的 数十万,上百万,有那么 厉害吗??
回复内容:
I. php 多进程的使用情况怎样?? (绝大多数php程序都用上了 | 几乎用不上)
II. php 多线程的使用情况怎样?? (绝大多数php程序都用上了 | 几乎用不上)
III. php 多进程 , php多线程 相比较 java 怎样??(简直糟透了 | 不相上下)
网络上几乎都写到 php 不适合多线程(是否也不适合多进程??),是否这样就不需要了解多线程,多进程之类的php相关特性了??
然后最近由于个人喜好,想自己动手做一个 类似qq的网页版聊天工具,现在 基本上了解了 socket 通信 , 但 了解了下 workerman 这样的开源 通信框架,他的特性介绍里面包括以下几个:
I. php多进程 可以发挥多核cpu优势,提高性能,并支持高并发??
II . php单个进程可以支持几千甚至几万的并发连接,多进程则可以支持数十万甚至上百万的并发连接。 这句话该怎么理解?? 由于它采用的是 socket 的方式进行通信,那么端口数实际上是已经固定的,不会超过 65536 ,一个端口表示一对连接,这边说的 几千 -》 几万可能还好一点, 多进程下的 数十万,上百万,有那么 厉害吗??
纠正一个概念:端口总数是一个unsigned short,即65535。这不代表一个服务器只能支撑这么多连接!一个端口对应一个进程,一个进程的连接数更这个进程打开的socket描述符
的数量是一致的。而描述符的数量是32位int数量级,当然系统有进程最多描述符的限制,可以通过内核参数来配置,但上个几十万肯定没问题的。
一个典型的多进程http服务器的工作原理大概是这样的:一个进程负责监听80端口的连接,当连接到来后,对应的描述符被内核创建出来,然后进程找一个相对空闲的子进程
来处理这个描述符,即在这个描述符上读写数据。注意这里是子进程
,正是因为子进程,才可以在父子进程间传递描述符。如果访问量上来了,子进程的数量不够了,父进程可以酌情创建新的子进程来处理描述符;父进程在一定程度上应当实现简单的负载平衡策略。
基于多线程的http服务器工作原理其实差不多,把上面的进程
改成线程
一样可以解释。
以上阐述跟php没有关系,php只不过是在这些底层的概念和系统调用上封装了而已。大多数人使用php是基于php的脚本解释器。而workerman
应该是基于php封装的系统调用实现的http服务。
-
php进程是由php-fpm(fastcgi的实现)管理:master进程会把请求分发到子进程
-
master进程:服务与web server通信
通信实现方式一:http socket(主机+端口),会占用一个端口,所以也就是说这里php-fpm只占用一个端口
通信实现方式二:unix domain socket(进程间通信),是基于.sock文件的方式,不依赖网络协议,所以也就是说理论上不占用端口
pool进程:子进程,含解析器,解析脚本
-
内容总结
以上是互联网集市为您收集整理的socket-使用php多线程,多进程??全部内容,希望文章能够帮你解决socket-使用php多线程,多进程??所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。