編程學習網 > 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高級編程視頻教程免費獲取