91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Gevent同步和異步怎么執行

發布時間:2021-12-29 13:41:31 來源:億速云 閱讀:127 作者:iii 欄目:云計算

本篇內容介紹了“Gevent同步和異步怎么執行”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

gevent是一個基于libev的并發庫。它為各種并發和網絡相關的任務提供了整潔的API。

Greenlets

在gevent中用到的主要模式是Greenlet, 它是以C擴展模塊形式接入Python的輕量級協程。 Greenlet全部運行在主程序操作系統進程的內部,但它們被協作式地調度。

在任何時刻,只有一個協程在運行。

這與multiprocessingthreading等提供真正并行構造的庫是不同的。 這些庫輪轉使用操作系統調度的進程和線程,是真正的并行。

同步和異步執行

并發的核心思想在于,大的任務可以分解成一系列的子任務,后者可以被調度成 同時執行或異步執行,而不是一次一個地或者同步地執行。兩個子任務之間的 切換也就是上下文切換

在gevent里面,上下文切換是通過yielding來完成的. 在下面的例子里, 我們有兩個上下文,通過調用gevent.sleep(0),它們各自yield向對方。

import gevent
def foo():    print('Running in foo')    gevent.sleep(0)    
   print('Explicit context switch to foo again')
   
def bar():    print('Explicit context to bar')    gevent.sleep(0)    
   print('Implicit context switch back to bar') gevent.joinall([    gevent.spawn(foo),    gevent.spawn(bar), ])
Running in foo
Explicit context to bar
Explicit context switch to foo again
Implicit context switch back to bar

下圖將控制流形象化,就像在調試器中單步執行整個程序,以說明上下文切換如何發生。

Gevent同步和異步怎么執行

當我們在受限于網絡或IO的函數中使用gevent,這些函數會被協作式的調度, gevent的真正能力會得到發揮。Gevent處理了所有的細節, 來保證你的網絡庫會在可能的時候,隱式交出greenlet上下文的執行權。 這樣的一種用法是如何強大,怎么強調都不為過。或者我們舉些例子來詳述。

“Gevent同步和異步怎么執行”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白朗县| 赞皇县| 新乡县| 冀州市| 恩平市| 商城县| SHOW| 邵武市| 兴义市| 隆化县| 阳春市| 张家口市| 顺义区| 武定县| 新宾| 恩施市| 平和县| 云和县| 都昌县| 砚山县| 建平县| 南召县| 神木县| 祁东县| 荆门市| 浦北县| 佛冈县| 建始县| 宿松县| 临江市| 雅安市| 乌海市| 沈阳市| 阿图什市| 农安县| 德庆县| 嘉鱼县| 册亨县| 东城区| 班玛县| 鹤庆县|