日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开启协程_「科普」什么是协程?

發布時間:2025/3/17 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开启协程_「科普」什么是协程? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
閱讀本文大概需要 6 分鐘

今天要講的這個東西說實話,我也是今天才知道,一個我們大多數人可能從來都沒用過的語法,哪就是傳說中的【協程】,英文表達是Coroutine。

可能你會說,攜程誰不知道啊,不就是哪個用來訂機票訂酒店的軟件么,這有什么好學的!這樣的話你就錯了,此協程非彼攜程,可不要傻傻分不清楚嘍!

什么是進程和線程

01 進程是什么 ?

直白地講,進程就是應用程序的啟動實例。比如我們運行一個游戲,打開一個軟件,就是開啟了一個進程,進程擁有代碼和打開的文件資源、數據資源、獨立的內存空間。

02 線程又是什么 ?

線程從屬于進程,是程序的實際執行者。一個進程至少包含一個主線程,也可以有更多的子線程,線程擁有自己的棧空間。

線程具有五種狀態:

對操作系統來說,線程是最小的執行單元,進程是最小的資源管理單元。

無論進程還是線程,都是由操作系統所管理的。

進程和線程的痛點

線程之間是如何進行協作的呢?

最經典的例子就是生產者/消費者模式

若干個生產者線程向隊列中寫入數據,若干個消費者線程從隊列中消費數據。

什么是協程

官方定義如下:

A coroutine is a function that can suspend its execution (yield) until the given given YieldInstruction finishes.

用我蹩腳的英語來翻譯一下就是:

協程是一種可以暫停執行過程的函數,它可以中斷當前的執行過程直到下一個 Yield 指令達成。

我的理解是可以把它當成為類似 于CPU 在多個進程間切換,從而達到多個進程同時執行的效果。協程是一種比線程更加輕量級的存在,一個進程可以擁有多個線程,一個線程也可以擁有多個協程。

學過計算機組成原理的都知道,當 CPU 在多個進程間切換時,那些后臺程序就會處于這種暫停用英文的 Suspend 或許更恰當)的狀態,所以早年的電腦即使用一個 CPU 也可以同時處理多個進程任務,這是一種“偽多線程”的技術。

除此之外比較重要的一點是,協程不是被操作系統內核所管理,而完全是由程序所控制(也就是在用戶態執行)。這樣帶來的好處就是性能得到了很大的提升,不會像線程那樣需要上下文切換來消耗資源,因此協程的開銷遠遠小于線程的開銷

注意,這里要劃一個重點,協程是一種“偽多線程”,始終記得這一點,可以幫助我們來理解協程會這個概念。

協程函數的寫法

Java 語言并沒有對協程提供原生支持,所以用 Java 暫時還演示不了,但是有個開源框架基本模擬除了協程的功能,感興趣的朋友可以去看看源碼。。。

地址 :https://github.com/kilim/kilim

Go 語言根據我查詢資料來看,對于協程的支持超乎我的想象,可以說是強大而簡潔,輕輕松松分分鐘創建成百上千個協程并發執行。

func Add(x, y int) { z := x + y fmt.Println(z)}func main() { for i:=0; i<10; i++ { go Add(i, i) }}

如上代碼,在一個函數調用前加上 go 關鍵字,這次調用就會在一個新的協程中并發執行。當被調用的函數返回時,這個協程也自動結束。需要注意的是,如果這個函數有返回值,那么這個返回值會被丟棄。

Python 語言也可以通過 yield/send 的方式實現協程。在 python 3.5 以后,async/await 成為了更好的替代方案。

def consume():while True:# consumer 協程等待接收數據number = yieldprint("開始消費

總結

以上是生活随笔為你收集整理的开启协程_「科普」什么是协程?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人的天堂一区二区 | 毛茸茸日本熟妇高潮 | 秘密基地免费观看完整版中文 | 精品久久91| www.97视频| 樱井莉亚av | 2020av在线 | 黄色av网站在线观看 | 国产无毛av | 三上悠亚一区二区在线观看 | 色婷婷综合五月 | 国产成人精 | 欧美性色网站 | 大桥未久av一区二区三区中文 | 五月婷婷视频在线 | 在线不卡一区二区 | 在线观看免费福利 | 亚洲天堂一区二区 | 91在线视频免费看 | 草色网 | 日韩人妻精品中文字幕 | 男生和女生一起差差差视频 | 中文字幕在线播 | 国产一区二区视频在线观看免费 | 原来神马电影免费高清完整版动漫 | 丁香花电影在线观看免费高清 | 欧洲av无码放荡人妇网站 | 美女免费视频网站 | 国产剧情一区 | www.精品| 91视频在线观看视频 | 五月婷婷丁香 | 草草影院一区二区三区 | 精品国产乱码久久久久久久软件 | 久久国产精品偷 | 国产女主播一区 | 成人性爱视频在线观看 | 黄色欧美视频 | 中文无码一区二区三区在线观看 | 91国产免费视频 | 欧美日韩精品一区二区在线观看 | 色婷婷婷 | 看黄网站在线观看 | 中国一级特黄真人毛片免费观看 | 中文字幕在线免费观看 | 色性网站| 欧美福利精品 | 99re这里| 91精品999| 国产精品av在线免费观看 | 日b在线观看| 色人阁网站 | 99热只有这里有精品 | 欧美日韩免费一区 | 亚洲精选久久 | 一个人看的www片免费高清中文 | 在线观看中文字幕一区二区 | 国产成人三级在线播放 | 在线观看aa| 动漫玉足吸乳羞免费网站玉足 | 影音先锋啪啪资源 | 国产成人一区二区三区视频 | 亚洲50p | 人人射影院 | 久久久久夜夜夜精品国产 | 一本色道久久亚洲综合精品蜜桃 | 国产一线二线三线女 | 欧美视频亚洲 | av漫画在线观看 | 黄色不卡 | 日韩视频免费播放 | 物业福利视频 | 午夜国产片| 日韩欧美一区二区三区免费观看 | 中文字幕少妇在线三级hd | av免费网| 日韩一区在线观看视频 | 久久精品免费av | 亚洲欧美综合 | 免费日本黄色网址 | 一起操网站 | 伦伦影院午夜理伦片 | 日韩免费在线观看 | 麻豆人妻少妇精品无码专区 | 国产成人a亚洲精v品无码 | 天堂中文在线最新 | 成年视频在线播放 | 国产午夜精品一区二区理论影院 | 国产欧洲亚洲 | www.xxx.国产 | 91午夜交换视频 | 午夜啪啪网 | 亚洲涩视频 | 久久久www成人免费无遮挡大片 | va毛片| 人人草人人爱 | www.性欧美 | 青青青国内视频在线观看软件 | 男生裸体视频网站 |