广告
返回顶部
首页 > 资讯 > 精选 >workerman和swoole有哪些区别
  • 619
分享到

workerman和swoole有哪些区别

2023-06-29 02:06:53 619人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关workerman和swoole有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、swoole是使用C语言实现的Socket通信框架,而workerman是使用纯PHP实

这篇文章给大家分享的是有关workerman和swoole有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

区别:1、swoole是使用C语言实现的Socket通信框架,而workerman是使用纯PHP实现的socket框架;2、workerman中socket是由worker进程负责的,swoole则是由主进程中的Reactor线程来负责的。

教程操作环境:windows10系统、Swoole4版、DELL G3电脑

workerman和swoole有哪些区别

workerman和swoole在现阶段很受争议,有时间你得认识认识,不然你就不是混php圈子的。swoole是使用C语言实现的socket通信框架,workerman则是使用纯php实现的socket框架,二者进程模型上也存在很多的不同。

master进程

这个进程比较复杂,也是我认为最核心的进程,这是一个包含多线程的进程,分别是一个主线程和n个reactor线程(数量可以配置)。

其中,主线程用于accept新的连接,然后评估一下每个reactor线程负责维护的连接数,然后分配给数量最少的那个reactor线程,最大程度保证每个reactor线程的负载量是均衡的。

本质上讲,一旦一个socket可读或者可写了,就由reactor线程发送给worker进程或者发送会客户端。除此之外,主线程还负责对所有信号的接管,避免reactor线程收到信号的打扰中断。

说的洋气点儿就是:master进程负责了连接的accept、托管、socket的可读可写(数据的发送和接受),本质上讲,master进程负责了io。还需要注意一点儿的是reactor线程是彻底的全异步非阻塞工作方式。

manager进程

manager进程是worker进程和taskworker进程的妈,说的洋气点儿就是manager进程fork出来了worker进程和taskworker进程,生出来了就得管,所以,manager进程得负责对worker进程和taskworker进程的抚养义务,具体包括监控它们的状态、当它们意外挂了后重新拉起一个新的进程(避免了僵尸进程)、平滑重启(就是传说中的reload)。

worker进程

worker进程是manager进程fork出来的,这个进程说白了就是搬砖干活(官方文档中屡次提到的业务代码),其实就是平时码的那些curd业务逻辑代码,懂了吧?只不过worker进程比较diao的是,这个进程可以用异步方式去工作,也可以用同步方式去工作。如果听不懂什么意思,那就先背过,先混个脸熟再说。

taskworker进程

taskworker进程(后文中称tasker进程)实际本质上也是worker进程,只不过是一种特殊的worker进程。如果你的worker进程中存在一些耗时耗力的操作,那么可以先抛给tasker进程,自己先去干别的,等tasker干完了,再由worker进程取回,非常diao。但是tasker进程只能工作在同步方式下,并不能使用异步。这就是为什么tasker进程不可以使用定时器,而worker进程可以使用定时器的原因。

简单总结混在一起说下这几种进程之间是怎么搭配起来干活的。见说来说,就是master进程就是接活儿的销售,但是具体干活则由worker进程来做,如果worker进程感觉到某些流程太繁忙复杂就可以让tasker进程来做。而manager进程就是后勤worker进程和takser进程的人力资源保障部,负责他们的生死存亡和吃喝拉撒。

workerman

而workerman的进程模型相对就要简单很多了,首先相对于swoole来说,workerman没有swoole中的reator线程,其次workerman没有用于处理普通业务的worker进程以及tasker进程。而workerman的话,socket是由worker进程负责的,swoole中则是由主进程中的reactor线程来负责的。而swoole在接受到数据后,可以通过自己的worker进程来处理业务(有点儿类似于fpm进程)。

workerman是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如rpc服务、聊天室服务器、手机游戏服务器等。

workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。 workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖php-fpm、Nginx或者apache等这些容器便可以独立运行

感谢各位的阅读!关于“workerman和swoole有哪些区别”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: workerman和swoole有哪些区别

本文链接: https://www.lsjlt.com/news/322206.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • workerman和swoole有哪些区别
    这篇文章给大家分享的是有关workerman和swoole有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、swoole是使用C语言实现的socket通信框架,而workerman是使用纯php实...
    99+
    2023-06-29
  • easyswoole和swoole的区别有哪些
    这篇“easyswoole和swoole的区别有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“easyswoole和sw...
    99+
    2023-07-05
  • php的fpm和swoole有哪些区别
    本文小编为大家详细介绍“php的fpm和swoole有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“php的fpm和swoole有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、“PHP...
    99+
    2023-06-29
  • go语言和swoole有哪些区别
    这篇“go语言和swoole有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言和swoole有哪些区别”文章吧...
    99+
    2023-06-29
  • swoole协程和go协程有哪些区别
    这篇文章主要讲解了“swoole协程和go协程有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“swoole协程和go协程有哪些区别”吧!区别:1、go协程是基于多线程的,可以利用多核...
    99+
    2023-06-29
  • swoole进程与线程有哪些区别
    今天小编给大家分享一下swoole进程与线程有哪些区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。区别:1、进程是系统中正...
    99+
    2023-06-29
  • swoole和redis有什么区别
    本篇内容主要讲解“swoole和redis有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“swoole和redis有什么区别”吧!区别:1、redis是由“Salvatore Sanfi...
    99+
    2023-06-29
  • swoole和golang区别
    本文将探讨swoole和golang之间的区别,它们都是Web开发的重要工具。Swoole和Golang都是PHP、Java等语言之外的服务器端语言。Swoole是PHP的一个扩展,是一款开源的高性能异步网络通信框架,基于C++实现,支持异...
    99+
    2023-05-15
  • Swoole和Workerman的区别与选择,对PHP与MySQL的性能影响
    随着互联网的发展,高并发处理成为了一个重要的问题,特别是对于一些大型的互联网应用来说,如何处理高并发成为了一种挑战。在这种情况下,Swoole和Workerman这两个PHP扩展应运而生。Swoole和Workerman都是针对PHP的高性...
    99+
    2023-10-21
    swoole 性能影响 Workerman 关键词:
  • php-fpm和swoole有什么区别
    本教程操作环境:windows10系统、PHP7.1版、DELL G3电脑php-fpm和swoole有什么区别一.PHP-FPM早期版本的 PHP 并没有内置的 WEB 服务器,而是提供了 SAPI(Server API)给第三方做对接。...
    99+
    2019-08-28
    PHP
  • html5和html有哪些区别
    这篇“html5和html有哪些区别”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“html5和html有哪些区别”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们...
    99+
    2023-06-06
  • euv和duv区别有哪些
    这篇文章主要介绍euv和duv区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!euv和duv区别:1、duv基本上只能做到25nm,而euv能满足10nm以下的晶圆权制造;2、duv主要利用光的折射原理,而e...
    99+
    2023-06-06
  • php和phpfpm有哪些区别
    php和phpfpm有哪些区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP-FPM简介:PHP-FPM(FastCGI Process Manager:...
    99+
    2023-06-15
  • javascript和java区别有哪些
    这篇文章主要介绍javascript和java区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区别:1、JavaScript由浏览器解释执行,Java程序则是编译执行。2、JavaScript提供丰富的内置对...
    99+
    2023-06-15
  • javascript和java有哪些区别
    这篇文章主要介绍了javascript和java有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、Java需要在JDK或JRE的JVM上运行;而JavaScr...
    99+
    2023-06-14
  • xhtml和html5有哪些区别
    今天就跟大家聊聊有关xhtml和html5有哪些区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。区别:1、XHTML要求正确嵌套,html5不需要;2、XHTML所有元素必须关闭,...
    99+
    2023-06-14
  • vista和win7区别有哪些
    本篇内容介绍了“vista和win7区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! vista...
    99+
    2023-03-07
    vista win7
  • Vuex3和Vuex4有哪些区别
    目录创建 Store 的方式在组件中使用 Store辅助函数的用法响应式的改进Vuex4 支持多例模式参考链接:Vuex 是 Vue.js 的官方状态管理库,用于在 Vue.js 应...
    99+
    2023-05-16
    Vuex3和Vuex4
  • PHP7和PHP5有哪些区别
    本篇内容主要讲解“PHP7和PHP5有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP7和PHP5有哪些区别”吧!安装两个PHP版本http://php.net/ 已经有最新PHP7...
    99+
    2023-06-20
  • Java和PHP有哪些区别
    这篇文章主要介绍“Java和PHP有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java和PHP有哪些区别”文章能帮助大家解决问题。概述Java 是面向对象编程语言,它可用于撰写跨平台应用...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作