【Swoole】- Centos7中使用Pecl安装PHP7的Swoole扩展

本文介绍Swoole,一个基于事件、异步、协程的PHP网络通信引擎,可极大提升PHP性能。文章详细讲解了Swoole的安装过程,包括解决依赖问题及启动HTTP服务的步骤。

Swoole是一个为PHP用C和C++编写的,基于事件、高性能、异步、协程并行网络通信引擎。Swoole 扩展是按照 PHP Extension标准扩展构建的,安装的方式大体思路就跟安装PHP扩展类似。本节采用PHP官方提供的pecl命令进行安装。

一、初识Swoole 

简介

       之前多少有听过这个Swoole框架,跟我之前了解的ThinkPHP、CI、Laravel这一类框架非常不同,比较厉害的是基于事件处理,内置异步协程,重新定义PHP,扩展PHP的生命周期。当然我这里说的不是很全面或者完整,只是稍微总结一下最近看到的知识点,之后会逐步了解学习。

       基于事件。网络请求是基于事件充分利用到底层epoll/kqueue实现。可以支持大请求。

       异步协程。传统的PHP编程都是同步串行的,也就是从上向下,也有可能在函数处理的时候处于堵塞状态,必须执行完后才可以继续向下。不过我们知道前端有Ajax这样的请求方式异步处理,但是当事件越来越多的时候,要解决掉异步之间回调嵌套的过程,这里使用类似 Go 语言的协程。Swoole4 提供内置协程,可以用完全同步的代码来实现异步性能,底层自动调度协程,异步不会受到阻塞。 这里简单说一下进程、线程、协程特点。进程是系统中正在运行的一个程序,每个进程有独立的地址空间,上下文切换,比较耗费资源,所有内容都要换;线程,一个进程可以有多个线程。每个线程使用其所属进程的栈空间,同一个进程内的多个线程都会共享部分状态,当然每个线程也有自己的栈和寄存器。由于没有内存隔离,线程切换一般要进行加锁;协程是程序内部的调度机制,是单进程单线程处理,协程上下文切换开销非常少,而且没有变量冲突,共享资源不需要加锁,只需要判断状态。协程之间是协作式的、串行的、非抢占、无需加锁、上下文切换快。而且如果协程受到阻塞,只是会阻塞某个进程,并且会让出当前控制权,不会阻塞整个进程。

      网络通信。Swoole可以提供网络通信的能力,极大地扩展了PHP脚本的生命周期。之前我们PHP开发通常需要有Web服务器的支持,例如Apache或者Nginx,这样我们打开浏览器然后便可以进行发起请求。传统这种形式我们可以看到,从浏览器到服务器之间的网络请求,只需要等候服务器将请求内容给到PHP脚本然后才去处理数据,在请求到来前和请求处理后都和PHP脚本没关系了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值