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

在python里使用await關(guān)鍵字來(lái)等另外一個(gè)協(xié)程的實(shí)例

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

一個(gè)協(xié)程里可以啟動(dòng)另外一個(gè)協(xié)程,并等待它完成返回結(jié)果,采用await關(guān)鍵字,

例子如下:

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()

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

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

補(bǔ)充知識(shí):python里使用Condition對(duì)象來(lái)喚醒指定數(shù)量的協(xié)程

在asyncio庫(kù)里,定義Condition對(duì)象,它的行為與事件Event有點(diǎn)像,區(qū)別是事件是通知所有對(duì)象,Condition對(duì)象可以指定一定數(shù)量的協(xié)程被通知,它是通過(guò)函數(shù)notify()來(lái)實(shí)現(xiàn)的,如果參數(shù)里放2,就是通知兩個(gè)協(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()

結(jié)果輸出如下:

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關(guān)鍵字來(lái)等另外一個(gè)協(xié)程的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

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

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

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

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

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

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

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

    pytorch版本PSEnet訓(xùn)練并部署方式

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

    解決python中的print函數(shù)自動(dòng)換行的問(wèn)題

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

    Python fileinput模塊使用實(shí)例

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

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

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

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

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

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

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

最新評(píng)論

宕昌县| 兴业县| 文水县| 永嘉县| 甘泉县| 江山市| 弥勒县| 南投县| 武城县| 启东市| 焦作市| 贞丰县| 呼图壁县| 葵青区| 修水县| 宁南县| 英吉沙县| 铁岭县| 金溪县| 隆昌县| 营山县| 远安县| 义乌市| 方正县| 安新县| 西城区| 贵定县| 常宁市| 岱山县| 临漳县| 龙陵县| 什邡市| 拜泉县| 泸水县| 攀枝花市| 郁南县| 杨浦区| 乌兰县| 儋州市| 喀喇沁旗| 贡觉县|