搜尋
首頁php框架Swooleswoole協程為什麼是單線程

在swoole中,因為協程的切換是串列的,在同一個時間點只能運行一個協程,一個協程正在運行時,其他協程會停止工作,所以swoole的協程是基於單一線程的。

swoole協程為什麼是單線程

本教學操作環境:Windows10系統、Swoole4版、DELL G3電腦

swoole協程為什麼是單執行緒

#簡單的說協程是寄宿在線程下程式設計師實現的一種跟更輕量的並發的協作輕量級線程

隨著程式設計師人群的增大,大佬也不斷的爆發式增長,當然就開始有人覺得線程不好用了,那怎麼辦呢?當然是基於線程的理念上再去實現一套更加輕量級、更好騙star的一套輕量級線程(事實上協程不能完全被認為線程,因為一個線程可以有多個協程)

協程 使用者狀態

調度方式

#執行緒的調度方式為系統調度,常用的調度策略有分時調度、搶佔調度。說白就是線程的調度完全不受自己控制

協程的調度方式為協作式調度 不受內核控制由自由策略調度切換

上述說了協程是用戶態的,所以所謂的協作式調度直接可以理解為是程式設計師寫的調度方式,也就是我想怎麼調度就怎麼調度,而不用透過系統核心被調度。

淺入理解swoole的協程

既然打算淺入理解的swoole的協程,我們必須要知道swoole的協程模型。

swoole的協程是基於單一執行緒。可以理解為協程的切換是串列的,再同一個時間點只運行一個協程.

Swoole的協程在底層實作上是單執行緒的,因此同一時間只有一個協程在工作,協程的執行是串列的。這與執行緒不同,多個執行緒會被作業系統調度到多個CPU並行執行。

一個協程正在運作時,其他協程會停止運作。當前協程執行阻塞IO操作時會掛起,底層調度器會進入事件循環。當有IO完成事件時,底層調度器恢復事件對應的協程的執行。

對CPU多核心的利用,仍然依賴Swoole引擎的多進程機制。

推薦學習:

swoole教學

以上是swoole協程為什麼是單線程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能