swoole开源吗
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了swoole开源吗,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1955字,纯文字阅读大概需要3分钟。
内容图文
![swoole开源吗](/upload/InfoBanner/zyjiaocheng/277/551403330538441c831650986e2e7e35.jpg)
![swoole开源吗 - 文章图片](/upload/getfiles/0001/2021/4/22/20210422033444334.jpg)
swoole是运行在PHP下的一个extesion扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。 (推荐学习: swoole视频教程)
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开源吗的详细内容。
内容总结
以上是互联网集市为您收集整理的swoole开源吗全部内容,希望文章能够帮你解决swoole开源吗所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。