美文网首页
用asyncio处理并发

用asyncio处理并发

作者: 剑侠飞蓬 | 来源:发表于2018-12-27 08:54 被阅读0次

    语法:

    • 用@asyncio.coroutine 装饰方法
    • 用asyncio.sleep()做等待
    • 以asyncio.CancelledError来获取.cancel事件
    • 用yield from来等待异步任务
    • 用asyncio.async排定协程,立即返回task对象。
    • 用asyncio.get_event_loop().run_until_complete(xx())来等待处理完成。

    线程与协程对比

    • Task与Future类似
    • Task用于驱动协程,Thread用于调用callable对象
    • Task不由自己手动实例化,而是传给asyncio.async(..)或loop.create_task(..)获取
    • Task排定了运行时间,Thread需要调用start方法明确运行
    • 线程不可通过外部的API终止,协程可以通过yield捕获到终止异常
    • 线程需要加锁,防止数据处于无效状态。协程无需保留锁,自身会同步协作

    相关文章

      网友评论

          本文标题:用asyncio处理并发

          本文链接:https://www.haomeiwen.com/subject/psuklqtx.html