专栏首页python3python里使用Future对象来异步

python里使用Future对象来异步

一个Future是用来表示将来要完成的结果,异步循环可以自动完成对这种对象的状态触发,例子如下:

import asyncio


def mark_done(future, result):
    print('setting future result to {!r}'.format(result))
    future.set_result(result)


event_loop = asyncio.get_event_loop()
try:
    all_done = asyncio.Future()

    print('scheduling mark_done')
    event_loop.call_soon(mark_done, all_done, 'the result')

    print('entering event loop')
    result = event_loop.run_until_complete(all_done)
    print('returned result: {!r}'.format(result))
finally:
    print('closing event loop')
    event_loop.close()

print('future result: {!r}'.format(all_done.result()))

输出结果如下:

scheduling mark_done entering event loop setting future result to 'the result' returned result: 'the result' closing event loop future result: 'the result'

在这个例子里,并没有调用return语句,但也可以生成一个结果返回。Future的使用跟协程使用是一样的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python列表与元组的用法

    7.列表生成式   #[i*i for i in range(10)]       [i*i for i in range(10) if i>5]

    py3study
  • python学习(13)

    #coding=utf-8 result = [] for i in range(1,6): result.append(chr(97+i-1)+str(i))...

    py3study
  • python常见的内置函数

    py3study
  • FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放

    FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放

    字节流动
  • FFmpeg 开发(03):FFmpeg + OpenSL ES 实现音频解码播放

    本文将利用 FFmpeg 对一个 Mp4 文件的音频流进行解码,然后使用 libswresample 将解码后的 PCM 音频数据转换为目标格式的数据,最后利用...

    字节流动
  • laravel框架实现后台登录、退出功能示例

    本文实例讲述了laravel框架实现后台登录、退出功能。分享给大家供大家参考,具体如下:

    砸漏
  • 嵌入式编程是否应该用C++替代C语言

    几十年来,嵌入式软件工程师们一直在争论是否应该使用C++替代C语言进行开发工作。根据2019年IEEE和github的市场调查显示,微控制器制造商提供的软件大部...

    bigmagic
  • redis 通信协议,php实现redis协议

    string(34) "*3CRLF$3CRLFsetCRLF$1CRLFa$8CRLFtioncicoCRLF"

    仙士可
  • 3555: [Ctsc2014]企鹅QQ

    3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec  Memory Limit: 256 MB Submit: 696  Solve...

    HansBug
  • dubbo实用知识点总结(一)

    老梁

扫码关注云+社区

领取腾讯云代金券