python协程的使用
2021-07-09 14:05
标签:div 任务 lam while cep try one 创建 一个 1、Python对协程的支持是通过generator(生成器 yield)实现的。协程执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。 2、调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。 3、Python的 python协程的使用 标签:div 任务 lam while cep try one 创建 一个 原文地址:https://www.cnblogs.com/tangpg/p/9565898.htmlyield
不但可以返回值,它还可以接收调用者发出的参数。代码中的r.send(None)启动生成器后,可继续发送参数给任务,r.send(anything)from functools import partial # 固定参数
def task(renwu_id, n, m):
for i in range(n, m):
print(f‘任务{renwu_id}-结果: {i}‘)
v = yield
# yield
def sched(*tasks):
tasks = list(map(lambda x: x(), tasks)) # 调用任务函数,生成器列表
while tasks: # 循环
try:
r = tasks.pop(0) # 取出第一个任务 开始执行
r.send(None) # 启动生成器
tasks.append(r) # 任务未结束 添加任务到列表最后一个
except StopIteration: # 任务结束,丢弃取出的任务
pass
t1 = partial(task, 1, 10, 13) # 创建任务 patial用来固定好参数
t2 = partial(task, 2, 20, 23)
sched(t1, t2) # 处理任务
上一篇:Python+Django(Python Web项目初体验)
下一篇:rpmbuild spec 打包jar变小了、设置禁止压缩二进制文件Disable Binary stripping in rpmbuild