编程学习网 > PHP技术 > swoole > 这几个swoole协程知识点,让你秒通面试(swoole协程使用场景)
2022
02-21

这几个swoole协程知识点,让你秒通面试(swoole协程使用场景)

我们都知道Swoole 是一个 PHP 协程框架,为 PHP 提供协程、高性能网络编程支持,并提供了多种通信协议的网络服务器和客户端模块,可以方便快速地实现 TCP/UDP 服务、高性能 Web、WebSocket 服务、物联网、实时通讯、游戏、微服务等,使 PHP 不再局限于传统的 Web 领域。所以在php面试中,少不了关于swoole协程相关的内容。今天就给大家整理一些相关内容,希望对大家有所帮助。

Swoole 协程的原理

  • Swoole4 由于是单线程多进程的,同一时间同一个进程只会有一个协程在运行。

  • Swoole server 接收数据在 worker 进程触发 onReceive 回调,产生一个协

    程。Swoole 为每个请求创建对应协程。协程中也能创建子协程。

  • 协程在底层实现上是单线程的,因此同一时间只有一个协程在工作,协程的执行是串行的。

  • 因此多任务多协程执行时,一个协程正在运行时,其他协程会停止工作。当前协程执行阻塞 IO 操作时会挂起,底层调度器会进入事件循环。当有 IO 完成事件时,底层调度器恢复事件对应的协程的执行。。所以协程不存在 IO 耗时,非常适合高并发 IO 场景。

Swoole 的协程执行流程

  • 协程没有 IO 等待 正常执行 PHP 代码,不会产生执行流程切换

  • 协程遇到 IO 等待 立即将控制权切,待 IO 完成后,重新将执行流切回原来协程切出的点

  • 协程并行协程依次执行,同上一个逻辑

  • 协程嵌套执行流程由外向内逐层进入,直到发生 IO,然后切到外层协程,父协程不会等待子协程结束

以上就是“这几个swoole协程知识点,让你秒通面试(swoole协程使用场景)”的详细内容,想要了解更多swoole相关内容欢迎持续关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取