
Swoole运用C言语编写,以PHP扩大的体式格局来运转。Swoole的收集IO部份基于epoll/kqueue事宜轮回,是全异步非壅塞的。营业逻辑部份运用多历程同步壅塞体式格局来运转。
如许既保证了Server能够应对高并发和大批TCP衔接。又保证营业代码依然能够简朴的编写。 (引荐进修: swoole视频教程)
Swoole对照Node.js的上风
1、swoole是原生支撑多历程/多线程的
开发者只须要修正一个参数,设置下要启动多少个历程即可。而Node.js的收集库自身并没有供应多历程/多线程的完成。开发者须要自行建立历程。或许痛快运用单线程。如许没法充分利用多核。
2、swoole运用音讯通报+多Worker历程,而不是多线程+同享内存+加锁,同享内存的机能虽然很好,但存在平安问题,须要读写时加锁。锁的粒度过大会致使只要一个线程在运转。锁太庞杂又会有死锁问题。所以开发者须要异常郑重警惕。
3、swoole的代码编写是同步,而不是嵌套异步回调
Node.js的代码假如太庞杂,会嵌套多层回调,使代码损失可读性,顺序流程变得很乱。Swoole运用了传统Linux下半同步半异步多Worker的完成体式格局。营业代码根据同步体式格局编写,更简朴。
Swoole也内置了Socket客户端的完成,但采纳的是同步+并行体式格局来实行。PHP自身也供应了socket的功用,但某几个函数存在一些bug,而且比较庞杂。Swoole内置的客户端类越发平安和简化。
4、swoole内置了Node.js所没有的分外特征
如CPU
Affinity设置,保卫历程化,夹杂UDP/TCP多端口监听,多定时器等。
以上就是swoole是php的扩大吗的细致内容,更多请关注ki4网别的相干文章!