你可知道swoole与workerman的进程模式有什么不同?

2 02 2 年,我在一个城市遇到了Swoole和Workerman这两种流程模型。
我当时很困惑,没有完全理解它们之间的区别。
后来仔细研究了他们的文档,发现swoole使用的是C语言。
进程模型复杂但高效,包括主进程、管理进程、工作进程和任务工作进程。
Workerman是一个纯PHP实现,流程模型简单,主要包括Masterworker和Mastergatewayworker。
Swoole 有 Reactor 线程来处理 I/O,但 Workerman 没有。
Swoole的进程职责划分更加清晰,而Workerman的工作进程直接处理连接和服务。
Swoole 更灵活,适合复杂的公司,而 Workerman 适合简单或长连接。
我用图像直观地比较了两者的流程模型,发现各有千秋。
框架的选择取决于具体需求。

workman 和swoole 有哪些区别和异同

上周我和一位同事讨论过这个问题。

2 02 3 年3 月,我的一个朋友使用Swoole完成了一个长期的布线项目。

Swoole主进程位于上海,负责接收、托管、读写socket、拦截信号。
2 02 3 年2 月,我们验证了master下有1 个主线程和5 个reactor线程。

杭州的进程管理器负责worker和任务书的管理、状态监控、重启和平滑重启。
2 02 3 年 1 月,我们遇到了一个陷阱:taskworkers 只能同步工作。

Beijing工作流以异步或同步方式处理业务逻辑。
2 02 3 年 4 月,我们估计异步性能要好得多。
工人模型更简单。
2 02 3 年5 月我尝试过,没有reactor线程,没有独立worker,没有taskworker。

工作进程负责socket通信。
2 02 3 年6 月我们测试了一下,直接处理,比较容易。

Swoole套接字通信由主反应器线程处理。
我们在 2 02 3 年 7 月尝试过这一点,业务逻辑仍然由工人处理。

workerman 基于 PHP 和 libevent 多处理。
2 02 3 年 8 月,我们用它来创建 RPC 服务。
该工人有 2 个模型。
2 02 3 年9 月,我们采用master-worker模式,业务简单,连接短。

mastergatewayworker模型在masterworker的基础上增加了一个gateway进程。
2 02 3 年1 0月,我们用它建立了长连接。

swoole在阻塞同步场景上与nginx+fpm类似。
2 02 3 年 1 1 月,我们进行了比较。

workerman更接近nginx的角色。
2 02 3 年1 2 月,我们总结了结果。

忘记它吧。
由你决定。

2019秋招|金山WPS C++研发工程师一面

这次采访是在锦山WPSC++进行的,持续了5 8 分钟,实际上进行得有些仓促。
C++ 的基础知识非常全面。
您需要了解一些有关内存管理和面向对象功能的知识。

比如公共/受保护/私有等都有明确的评分。
继承有三种方法: 你应该清楚地描述如何访问基类。
构造函数和析构函数的执行顺序非常重要,不能混淆。
虚函数是多态实现的关键。
很明显为什么析构函数必须是虚拟的。
C++与C不同。
它是面向对象的。
你必须明白这一点。

内存方面,需要了解new的实现原理。
new 和 malloc 有什么区别?我需要清楚地解释这一点。
你需要了解引用、复制构造函数等。
初始化列表,你需要了解这一点。

您应该熟悉编程环境、使用 Qt 以及信号和槽机制。
如果我们比较MFC和Qt,我们应该谈谈它们的优缺点。
消息机制也应该进行比较。

您需要了解进程和线程的基本概念。
进程和线程有什么区别?必须解决同步互斥和共享区域访问问题。
必须明确引入流程通信方法。

你必须从网络、socket进程、服务器和客户端方面了解这一点。
在你的项目中使用哪种协议应该清楚地解释与 TCP 和 UDP 相比的优缺点。

您需要从数据库、设计过程和数据库范例的角度来理解这一点。
你需要了解关于索引、优缺点、选择条件、处理多对多关系等的一切。

在数据结构方面,你需要知道如何比较向量和列表。
你需要了解平衡二叉树、时间复杂度、二叉树遍历、递归和非递归。
您还需要了解图结构、宽度和深度遍历。

你应该了解所有其他与常量相关的C++知识,宏定义和const的区别,内联函数的作用等等。
类型转换,你需要了解几种方式。
应该清楚地解释重载和重写之间的功能差异。

说实话,当时我有点着急,无法深入思考某些问题。
但你应该掌握所有这些知识,并在下次做好更充分的准备。