swoole協(xié)程是屬于線程的。協(xié)程是在線程里執(zhí)行的,協(xié)程是輕量級線程,Swoole的協(xié)程在底層實現上是單線程的,同一時間只有一個協(xié)程在工作,而線程會被操作系統(tǒng)調度到多個CPU并行執(zhí)行。
本教程操作環(huán)境:Windows10系統(tǒng)、Swoole4版、DELL G3電腦
swoole協(xié)程是屬于進程還是線程
什么是進程?
進程是系統(tǒng)中正在運行的一個程序,程序一旦運行就是進程。
進程可以看成程序執(zhí)行的一個實例。
Tags:一個進程無法訪問另一個進程的變量和數據結構,如果想讓一個進程訪問另一個進程的資源,需要使用進程間通信,比如管道,文件,套接字等。
什么是線程?
線程屬于進程,是程序的執(zhí)行者。
一個進程至少包含一個主線程,也可以有更多的子線程,每個線程使用其所屬進程的棧空間。
線程是進程的一個實體,是進程的一條執(zhí)行路徑。
Tags:同一進程內的多個線程會共享部分狀態(tài),多個線程可以讀寫同一塊內存。
什么是協(xié)程?
協(xié)程比較抽象?它是程序內部的一定調度機制;
協(xié)程是輕量級線程,?協(xié)程的創(chuàng)建、切換、掛起、銷毀全部為內存操作,消耗是非常低的。
協(xié)程是屬于線程,協(xié)程是在線程里執(zhí)行的。
協(xié)程的調度是用戶手動切換的,所以又叫用戶空間線程。
協(xié)程的調度策略是:協(xié)作式調度。
協(xié)程與線程區(qū)別:
Swoole的協(xié)程在底層實現上是單線程的,因此同一時間只有一個協(xié)程在工作,協(xié)程的執(zhí)行是串行的。這與線程不同,多個線程會被操作系統(tǒng)調度到多個CPU并行執(zhí)行。
一個協(xié)程正在運行時,其他協(xié)程會停止工作。當前協(xié)程執(zhí)行阻塞IO操作時會掛起,底層調度器會進入事件循環(huán)。當有IO完成事件時,底層調度器恢復事件對應的協(xié)程的執(zhí)行。
對CPU多核的利用,仍然依賴于Swoole引擎的多進程機制。
協(xié)程的適用場景:
高并發(fā)服務,如秒殺系統(tǒng)、高性能API接口、rpc服務器,使用協(xié)程模式,服務的容錯率會大大增加,某些接口出現故障時,不會導致整個服務崩潰。
??爬蟲,可實現非常巨大的并發(fā)能力,即使是非常慢速的網絡環(huán)境,也可以高效地利用帶寬。
??即時通信服務,如IM聊天、游戲服務器、物聯網、消息服務器等等,可以確保消息通信完全無阻塞,每個消息包均可即時地被處理。
推薦學習: swoole教程