python多任务之协程的使用详解
importtime
deftest1():
whileTrue:
print("--1--")
time.sleep(0.5)
yieldNone
deftest2():
whileTrue:
print("--2--")
time.sleep(0.5)
yieldNone
if__name__=="__main__":
t1=test1()
t2=test2()
whileTrue:
next(t1)
next(t2)
2|0使用greenlet完成多任务
如果没有安装,则pipinstallgreenlet
fromgreenletimportgreenlet
importtime
deftest1():
whileTrue:
print("---A---")
gr2.switch()
time.sleep(0.5)
deftest2():
whileTrue:
print("---b---")
gr1.switch()
time.sleep(0.5)
gr1=greenlet(test1)
gr2=greenlet(test2)
gr1.switch()
3|0使用gevent完成多任务
首先使用pipinstallgevent进行安装
gevent是对greenlet的再次封装,使用起来更加简便,当有耗时操作时会自动切换到其他协程。gevent封装了常用的耗时操作,如thread、socket、time、multiprocessing等模块。
importgevent importtime fromgeventimportmonkey #打补丁,不需要改原来的耗时操作,否则是要使用gevent提供的模块 monkey.patch_all() deff(n): foriinrange(n): print(gevent.getcurrent(),i) #使用gevent提供的耗时模块 #gevent.sleep(0.5) time.sleep(0.5) g1=gevent.spawn(f,5) g2=gevent.spawn(f,5) g3=gevent.spawn(f,5) #g1.join() #g2.join() #g3.join() #一次性添加全部的任务 gevent.joinall([g1,g2,g3])
总结
以上所述是小编给大家介绍的python多任务之协程的使用详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短