亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

贵定县| 塔河县| 安徽省| 修武县| 弋阳县| 海兴县| 隆德县| 建宁县| 繁峙县| 新兴县| 托克托县| 高要市| 高邑县| 上思县| 沛县| 孝昌县| 毕节市| 昌平区| 光泽县| 仪陇县| 安康市| 贺兰县| 祥云县| 东兰县| 广宁县| 义马市| 古田县| 宁海县| 榆社县| 车险| 壤塘县| 康马县| 武城县| 闻喜县| 广安市| 青冈县| 抚顺市| 清涧县| 西平县| 灵寿县| 松江区|