php 如何理解进程数

lyd_dream 2018-10-30 03:38:01
我遇到的困惑,举个例:纯php开发的workerman socket多进程服务框架,
// 启动4个进程对外提供服务 $http_worker->count = 4; 这里的4个进程,
是指启动4个进程监听我开启的端口? 一个连接算一个进程吗?什么情况进程会满,满了之后又会怎样呢?

在这先 谢谢大家解答。
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
下雨的声音丶 2018-10-31
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你好像是混淆了几个概念 进程和用户连接并不是一回事,对于每个运行该程序的进程,用户连接是存放在一个数组里的,只要内存足够大,全世界的人都可以连接上来 起工作原理可看一下手册中 socket_select 函数的说明和示例(一些原理弄清楚后,你自己也就可以去写这些玩意了) 而 $worker->count 必须是1 的规定,应该是作者最初设计上的失误,因为既然必须是 1,那么设计这个属性有什么用呢? 显然作者是准备让他可以是 10 或者 100、10000 的,但是之后才发现:端口只能被监听一次(基础不牢固哦),但由于涉及的地方太多,担心修改后出问题,也就留下了这么一个无厘头的规定
版主还是版主啊,牛逼
xuzuning 2018-10-31
  • 打赏
  • 举报
回复
你好像是混淆了几个概念
进程和用户连接并不是一回事,对于每个运行该程序的进程,用户连接是存放在一个数组里的,只要内存足够大,全世界的人都可以连接上来
起工作原理可看一下手册中 socket_select 函数的说明和示例(一些原理弄清楚后,你自己也就可以去写这些玩意了)
而 $worker->count 必须是1 的规定,应该是作者最初设计上的失误,因为既然必须是 1,那么设计这个属性有什么用呢?
显然作者是准备让他可以是 10 或者 100、10000 的,但是之后才发现:端口只能被监听一次(基础不牢固哦),但由于涉及的地方太多,担心修改后出问题,也就留下了这么一个无厘头的规定
lyd_dream 2018-10-31
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你好像是混淆了几个概念
进程和用户连接并不是一回事,对于每个运行该程序的进程,用户连接是存放在一个数组里的,只要内存足够大,全世界的人都可以连接上来
起工作原理可看一下手册中 socket_select 函数的说明和示例(一些原理弄清楚后,你自己也就可以去写这些玩意了)
而 $worker->count 必须是1 的规定,应该是作者最初设计上的失误,因为既然必须是 1,那么设计这个属性有什么用呢?
显然作者是准备让他可以是 10 或者 100、10000 的,但是之后才发现:端口只能被监听一次(基础不牢固哦),但由于涉及的地方太多,担心修改后出问题,也就留下了这么一个无厘头的规定
谢谢版主
lyd_dream 2018-10-30
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
进程里运行的不都是 php 脚本吗?不也就是瞬间就执行完毕了吗?
$worker->count 必须是1! 不就正好表示你所开启的进程,都是一个一个顺序执行的,并不是他所鼓吹的那样是并发执行的


好的,谢谢。大概理解了,跟redis一样 单进程,单线程,但是能做高并发,原因是每个任务执行是瞬间完成的。但是还是有点疑惑,因为这里在线嘛,连接是瞬间完成,但他是长连接我没关闭连接,进程不应该还在吗?其他人还能连接我这个单进程的?
xuzuning 2018-10-30
  • 打赏
  • 举报
回复
进程里运行的不都是 php 脚本吗?不也就是瞬间就执行完毕了吗?
$worker->count 必须是1! 不就正好表示你所开启的进程,都是一个一个顺序执行的,并不是他所鼓吹的那样是并发执行的
lyd_dream 2018-10-30
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、是的
2、满了就排队,等着


以上例子可以针对uid推送,虽然是单进程,但是支持个10W在线是没问题的。

注意这个例子只能单进程,也就是$worker->count 必须是1。

以上是workerman 官方文档原话: 那个只能单进程,怎么实现10在线 在线不都是要服务器之前连接吗?一个连接一个进程那就有点冲突矛盾了啊?
xuzuning 2018-10-30
  • 打赏
  • 举报
回复
1、是的
2、满了就排队,等着

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧