python生成器异步使用

Posted .Tang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python生成器异步使用相关的知识,希望对你有一定的参考价值。

 

import dis,time  # 反汇编
import threading

def request():
    print(start request)
    v = yield
    print(v)


def target(func):
    try:
        s = time.time()
        print(start target)
        c = func()
        c.send(None)
        time.sleep(7)
        c.send(fdone: {time.time()-s})
    except StopIteration:
        pass

def server(func):
    threading.Thread(target=target,args=(func,)).start()

server(request)
for i in range(10):
    time.sleep(1)
    print(i)

运行结果

>>>
start target
start request
0
1
2
3
4
5
done: 7.004955053329468
6
7
8
9

 

以上是关于python生成器异步使用的主要内容,如果未能解决你的问题,请参考以下文章

python生成器异步使用

“按史索骥”:Python异步编程之协程进化史

在Python中附加到合并的异步生成器

本篇为你深度解析 Python 异步到底是怎么实现的?

PEP525--异步生成器

使用 Python 代码片段编写 LaTeX 文档