swoole是否开源,应用有哪些基本知识要知道

Admin 2022-09-13 群英技术资讯 324 次浏览

今天我们来学习关于“swoole是否开源,应用有哪些基本知识要知道”的内容,下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。


  


swoole是运行在PHP下的一个extesion扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。 

PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。

Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。

Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。

Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和个人开发者均可免费使用Swoole的代码,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。

Swoole的实现

swoole使用纯C编写,不依赖其他第三方库。

swoole并没有用libevent,所以不需要安装libevent

swoole并不依赖php的stream/sockets/pcntl/posix/sysvmsg等扩展

socket部分

swoole使用底层的socket系统调用。参见 sys/socket.h

IO事件循环

主进程的事件循环使用select/poll,因为主线程中的文件描述符只有几个,使用select/poll即可

reactor线程/worker进程中使用epoll/kqueue

task进程没有事件循环,进程会循环阻塞读取管道

有很多人使用strace -p去查看swoole主进程只能看到poll系统调用。正确的查看方法是strace -f -p

多进程/多线程

多进程使用fork()系统调用

多线程使用pthread线程库

EventFd

Swoole中使用了eventfd作为线程/进程间消息通知的机制。

Timerfd

Swoole使用timerfd来实现定时器

SIgnalfd

swoole中使用了signalfd来实现对信号的屏蔽和处理。可以有效地避免线程/进程被信号打断,系统调用restart的问题。在主进程中reactor线程不会接受任何信号。

1.8.7或更高版本已完全兼容PHP7

现在大家对于swoole是否开源,应用有哪些基本知识要知道的内容应该都有一定的认识了吧,希望这篇能对大家有所帮助。最后,想要了解更多,欢迎关注群英网络,群英网络将为大家推送更多相关的文章。 群英智防CDN,智能加速解决方案
标签: swoole

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服