您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“swoole協(xié)程的概念是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
swoole協(xié)程是更加輕量級(jí)的線程,一個(gè)線程可以擁有多個(gè)協(xié)程,協(xié)程是在線程里面執(zhí)行的,主要用于將線程中的競(jìng)爭(zhēng)資源轉(zhuǎn)化成協(xié)作運(yùn)行,適用于處理IO密集型任務(wù)。
本教程操作環(huán)境:Windows10系統(tǒng)、Swoole4版、DELL G3電腦
首先聊聊協(xié)程,了解一下協(xié)程到底有什么用,其特點(diǎn)又是什么
協(xié)程(Coroutines)是一種比線程更加輕量級(jí)的存在,正如一個(gè)進(jìn)程可以擁有多個(gè)線程一樣,一個(gè)線程可以擁有多個(gè)協(xié)程。 協(xié)程具有以下幾個(gè)特點(diǎn)
用戶態(tài)執(zhí)行,完全由程序所控制,不是被操作系統(tǒng)內(nèi)核所管理的
適用于處理IO密集型任務(wù),至于什么是IO密集型任務(wù)這里就不做詳細(xì)介紹了,主要區(qū)別于CPU密集型任務(wù)
將線程中的競(jìng)爭(zhēng)資源,轉(zhuǎn)化成協(xié)作運(yùn)行
通道(Channel)的方式進(jìn)行協(xié)程間的通信
少量的上下文切換開(kāi)銷,主要是運(yùn)行在線程上,對(duì)比進(jìn)程的上下文切換是保存在棧資源當(dāng)中,而協(xié)程是異步非阻塞的,相當(dāng)于用戶態(tài)線程中的隊(duì)列任務(wù),只需要利用channel作為回調(diào)即可,不需要在任務(wù)完成后二次的資源搶奪
協(xié)程可以簡(jiǎn)單理解為線程,只不過(guò)這個(gè)線程是用戶態(tài)的,不需要操作系統(tǒng)參與,創(chuàng)建銷毀和切換的成本非常低,和線程不同的是協(xié)程沒(méi)法利用多核 cpu 的,想利用多核 cpu 需要依賴 Swoole 的多進(jìn)程模型。
簡(jiǎn)單的說(shuō)協(xié)程是寄宿在線程下程序員實(shí)現(xiàn)的一種跟更輕量的并發(fā)的協(xié)作輕量線程
隨著程序員人群的增大,大佬也不斷的爆發(fā)式增長(zhǎng),當(dāng)然就開(kāi)始有人覺(jué)得線程不好用了,那怎么辦呢?當(dāng)然是基于線程的理念上再去實(shí)現(xiàn)一套更加輕量、更好騙star的一套輕量線程(事實(shí)上協(xié)程不能完全被認(rèn)為線程,因?yàn)橐粋€(gè)線程可以有多個(gè)協(xié)程)
協(xié)程和線程的區(qū)別
本質(zhì)
線程 內(nèi)核態(tài)
協(xié)程 用戶態(tài)
調(diào)度方式
線程的調(diào)度方式為系統(tǒng)調(diào)度,常用的調(diào)度策略有分時(shí)調(diào)度、搶占調(diào)度。說(shuō)白就是線程的調(diào)度完全不受自己控制
協(xié)程的調(diào)度方式為協(xié)作式調(diào)度 不受內(nèi)核控制由自由策略調(diào)度切換
“swoole協(xié)程的概念是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。