最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在python里使用await關鍵字來等另外一個協(xié)程的實例

 更新時間:2020年05月04日 17:59:08   作者:caimouse  
這篇文章主要介紹了在python里使用await關鍵字來等另外一個協(xié)程的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

一個協(xié)程里可以啟動另外一個協(xié)程,并等待它完成返回結果,采用await關鍵字,

例子如下:

import asyncio
 
async def outer():
  print('in outer')
  print('waiting for result1')
  result1 = await phase1()
  print('waiting for result2')
  result2 = await phase2(result1)
  return (result1, result2)
 
async def phase1():
  print('in phase1')
  return 'result1'
 
async def phase2(arg):
  print('in phase2')
  return 'result2 derived from {}'.format(arg)
 
event_loop = asyncio.get_event_loop()
try:
  return_value = event_loop.run_until_complete(outer())
  print('return value: {!r}'.format(return_value))
finally:
  event_loop.close()

輸出結果如下:
in outer
waiting for result1
in phase1
waiting for result2
in phase2
return value: ('result1', 'result2 derived from result1')

await關鍵字添加了一個新的協(xié)程到循環(huán)里,而不需要明確地添加協(xié)程到這個事件循環(huán)里。

補充知識:python里使用Condition對象來喚醒指定數(shù)量的協(xié)程

在asyncio庫里,定義Condition對象,它的行為與事件Event有點像,區(qū)別是事件是通知所有對象,Condition對象可以指定一定數(shù)量的協(xié)程被通知,它是通過函數(shù)notify()來實現(xiàn)的,如果參數(shù)里放2,就是通知兩個協(xié)程,例子如下:

import asyncio
 
async def consumer(condition, n):
  with await condition:
    print('consumer {} is waiting'.format(n))
    await condition.wait()
    print('consumer {} triggered'.format(n))
  print('ending consumer {}'.format(n))
 
async def manipulate_condition(condition):
  print('starting manipulate_condition')
 
  # pause to let consumers start
  await asyncio.sleep(0.1)
 
  for i in range(1, 3):
    with await condition:
      print('notifying {} consumers'.format(i))
      condition.notify(n=i)
    await asyncio.sleep(0.1)
 
  with await condition:
    print('notifying remaining consumers')
    condition.notify_all()
 
  print('ending manipulate_condition')
 
async def main(loop):
  # Create a condition
  condition = asyncio.Condition()
 
  # Set up tasks watching the condition
  consumers = [
    consumer(condition, i)
    for i in range(5)
  ]
 
  # Schedule a task to manipulate the condition variable
  loop.create_task(manipulate_condition(condition))
 
  # Wait for the consumers to be done
  await asyncio.wait(consumers)
 
event_loop = asyncio.get_event_loop()
try:
  result = event_loop.run_until_complete(main(event_loop))
finally:
  event_loop.close()

結果輸出如下:

starting manipulate_condition
consumer 2 is waiting
consumer 3 is waiting
consumer 4 is waiting
consumer 1 is waiting
consumer 0 is waiting
notifying 1 consumers
consumer 2 triggered
ending consumer 2
notifying 2 consumers
consumer 3 triggered
ending consumer 3
consumer 4 triggered
ending consumer 4
notifying remaining consumers
ending manipulate_condition
consumer 1 triggered
ending consumer 1
consumer 0 triggered
ending consumer 0

以上這篇在python里使用await關鍵字來等另外一個協(xié)程的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python 實現(xiàn)將Numpy數(shù)組保存為圖像

    python 實現(xiàn)將Numpy數(shù)組保存為圖像

    今天小編就為大家分享一篇python 實現(xiàn)將Numpy數(shù)組保存為圖像,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python中從for循環(huán)延申到推導式的具體使用

    python中從for循環(huán)延申到推導式的具體使用

    這篇文章主要介紹了python中從for循環(huán)延申到推導式的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • python實現(xiàn)決策樹分類算法代碼示例

    python實現(xiàn)決策樹分類算法代碼示例

    決策樹分類算法是最為常見的一種分類算法,通過屬性劃分來建立一棵決策樹,測試對象通過在樹上由頂向下搜索確定所屬的分類,下面這篇文章主要給大家介紹了關于python實現(xiàn)決策樹分類算法的相關資料,需要的朋友可以參考下
    2022-06-06
  • 詳解Python發(fā)送郵件實例

    詳解Python發(fā)送郵件實例

    這篇文章主要介紹了Python發(fā)送郵件實例,Python發(fā)送郵件需要smtplib和email兩個模塊,感興趣的小伙伴們可以參考一下
    2016-01-01
  • pytorch版本PSEnet訓練并部署方式

    pytorch版本PSEnet訓練并部署方式

    這篇文章主要介紹了pytorch版本PSEnet訓練并部署方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 解決python中的print函數(shù)自動換行的問題

    解決python中的print函數(shù)自動換行的問題

    這篇文章主要介紹了解決python中的print函數(shù)自動換行的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python fileinput模塊使用實例

    Python fileinput模塊使用實例

    這篇文章主要介紹了Python fileinput模塊使用實例,fileinput模塊可以遍歷文本文件的所有行,本文就給出它的使用代碼實例,需要的朋友可以參考下
    2015-05-05
  • Python?pandas按行、按列遍歷DataFrame的幾種方式

    Python?pandas按行、按列遍歷DataFrame的幾種方式

    在python的DataFrame中,因為數(shù)據(jù)中可以有多個行和列,而且每行代表一個數(shù)據(jù)樣本,我們可以將DataFrame看作數(shù)據(jù)表,那你知道如何按照數(shù)據(jù)表中的行遍歷嗎,下面這篇文章主要給大家介紹了關于Python?pandas按行、按列遍歷DataFrame的幾種方式,需要的朋友可以參考下
    2022-09-09
  • Python對接支付寶支付自實現(xiàn)功能

    Python對接支付寶支付自實現(xiàn)功能

    這篇文章主要介紹了Python對接支付寶支付自實現(xiàn)功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 一文帶你玩轉Python必備的幾種數(shù)據(jù)格式

    一文帶你玩轉Python必備的幾種數(shù)據(jù)格式

    在Python開發(fā)中,數(shù)據(jù)格式的選擇直接影響著程序的性能和可維護性,本文將詳細介紹Python開發(fā)中最常用的幾種數(shù)據(jù)格式,希望可以幫助大家選擇最合適的數(shù)據(jù)表示方式
    2025-06-06

最新評論

嘉定区| 常山县| 双城市| 白玉县| 开远市| 永川市| 丹棱县| 茌平县| 桃园市| 淄博市| 秦皇岛市| 图片| 新邵县| 准格尔旗| 新晃| 通江县| 库伦旗| 武隆县| 会宁县| 兖州市| 岐山县| 靖江市| 冕宁县| 富源县| 兴城市| 浦县| 绥德县| 同心县| 抚顺市| 三门县| 吉隆县| 资中县| 博白县| 兖州市| 舟山市| 方正县| 博湖县| 平谷区| 阿拉善盟| 迁安市| 东明县|