首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
通过进程管理器创建的协程服务器与异步风格SWOOLE_BASE/SWOOLE_PROCESS模式服务器是否有内在联系?
具体: 1. 通过 `Swoole\Process\Manager` 多进程方式创建的协程服务器与`Swoole\\*\Server`(`SWOOLE_PROCESS`模式)异步协程化服务器有没有内在联系?协程服务器有没有`Master`进程的概念,`conncetiton`跟`worker`相关吗? 2. 异步风格`Server`里的多端口监听、工作进程和用户进程,相应的在协程`Server`里面可以用协程替代实现。不知这样理解对不对? 3. 如第2点 的理解是正确的,是不是说明 协程服务器 就跟异步风格的`SWOOLE_PROCESS`模式全无关(进程模式的功能可由协程去实现)呢? 感觉它们灵活而强大,可以有多种应用方式,但如果理解不到位,就选择犯难。
发布于3年前 · 47 次浏览 · 来自
提问
Bindu
具体: 1. 通过 `Swoole\Process\Manager` 多进程方式创建的协程服务器与`Swoole\\*\Server`(`SWOOLE_PROCESS`模式)异步协程化服务器有没有内在联系?协程服务器有没有`Master`进程的概念,`conncetiton`跟`worker`相关吗? 2. 异步风格`Server`里的多端口监听、工作进程和用户进程,相应的在协程`Server`里面可以用协程替代实现。不知这样理解对不对? 3. 如第2点 的理解是正确的,是不是说明 协程服务器 就跟异步风格的`SWOOLE_PROCESS`模式全无关(进程模式的功能可由协程去实现)呢? 感觉它们灵活而强大,可以有多种应用方式,但如果理解不到位,就选择犯难。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2023-03-25
Rango
如果只是作为一个 `Web` 服务差别不大。但是如果作为一个通信服务器,对于某些细节有一定要求,这时就存在差异了。 异步服务器,也就是 `Swoole\Server` 、 `Swoole\Http\Server` 、 `Swoole\WebSocket\Server` ,对于连接的 `connect` 、`receive`、`close` 处理是异步并发的,这些事件不会等待上一个事件完成。 例如 `onConnect` 事件回调函数还在执行时,可能就会触发 `onReceive` 就在执行了,如果客户端同时发送了很多数据,甚至 `onReceive` 事件回调函数的协程会同时存在很多个。 而 `Swoole\Coroutine\Server` 则是绝对有序的,`connect` 、`receive`、`close` 是依次执行,比如 `receive` 若当前的协程没有执行完成,则不会进入 `Socket::recv()` ,也就是不会读取缓存区,接收数据。 这些细节的差异,在编写通信服务器时是至关重要的。
赞
1
回复
2023-12-13
Bindu
回复
Rango
伟大的神!~ Swoole\Coroutine\Server + Rrocess\Pool 创建的多进程Server 有Master进程和Reactor线程吗?
赞
0
回复
2023-12-18
php探索者
回复
Bindu
应该是没有的,你可以通过ps -eTf查看进程的线程情况,发现服务所在的进程就只有一个线程ps -t PID 可以查看某个进程有多少线程的
赞
0
回复
2023-12-18
php探索者
回复
php探索者
是 ps -T PID 大写哦,几个SPID就有几个线程
赞
0
回复