不少人会有以下疑问:

Swoole到底是什么?Swoole和PHP到底什么关系?

据说是一个异步处理很牛逼的东西?为什么有人经常用它和node.js之类的做对比?

此类问题给大家带来很大困扰。

那么在这里长沙PHP培训学校小编下面就给大家讲解一下Swoole到底是啥,有啥优势。

长沙PHP培训学校:Swoole和PHP到底什么关系?

一、Swoole介绍

Swoole是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。一直以来,PHP 在程序员的鄙视链中都处于最底端。大多 PHPer 也都清楚 PHP 在底层的局限,比如系统编程、网络通信、异步IO等等,用 PHP 实现起来确实非常费劲而且低效。Swoole 的出现为改变这一点带来了希望,与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。

除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。

举个例子:用户打开了我们的网站,他要做的就是勾选需要发邮件的代理商列表,然后把结算邮件发出去。假如我们需要发1封邮件,我们写个函数执行即可。考虑到网络可能会稍微有点延迟,但是是可以接受的,用户会乖乖等你的网页发完邮件了再关闭网页。

假如我们要发布10封邮件,用一个for循环,循环10遍执行发邮件操作。这时候,也许10倍的网络延迟会让用户稍微有点不耐烦,但勉强可以等吧。假如要发1000封邮件,for循环1000遍,用户直接揭竿而起,什么破网站!

但实际上,我们很可能有超过2万的邮件。怎么处理这个延迟的问题?

答案就是用异步。把“发邮件”这个操作封装,然后后台异步地执行1万遍。这样的话,用户提交网页后,他所等待的时间只是“把发邮件任务请求推送进队列里”的时间。而我们的后台服务将在用户看不见的地方跑。而swoole就为我们实现了异步队列处理及并发等问题。

二、Swoole能做什么?

1.异步多线程服务器及客户端,

2.异步MySQL、Redis、数据库连接池、任务队列

3.http/websocket服务器/客户端

4.异步文件读写

5.Swoole2.0支持协程

三、Swoole的优势

1.Swoole开源项目就是为了弥补PHP在这些方面的缺陷诞生的。与WordPress这些产品不同,swoole实际上是一个网络通信和异步io的引擎,一个基础库。

2.swoole框架相比apache/fpm,主要节省PHP框架和全局对象每次请求创建销毁带来的性能损耗。

3.swoole框架给程序员提供了最大的空间,与http请求无关的全局对象只需要构造一次。程序中还可以对某些对象和数据进行缓存控制。

长沙PHP培训学校:Swoole和PHP到底什么关系?

相信通过以上的介绍大家对Swoole已经有了一个基础的了解了,希望会对大家有帮助,想要了解更多的小伙伴,可以加入我们长沙PHP培训课堂,更多PHP在线教程等你来观看。