Python协程
#greenlet模块
#协程 #协程相对于线程与进程,协程可以控制,线程进程不受到人为的控制 # #greenlet 可以控制协程的执行与暂停,greenlet不具备自动切换进程的能力 # #gevent 当遇到阻塞,gevent会自动切换,使cpu利用率达到将近100% # #greenlet #使用 #gr1=greenlet(target) 创建协程 #gr2=greenlet(target,gr1) 创建gr2协程,运行过后切换到gr1线程 #gr1.switch() 手动切换到gr1协程的方法 #导入greenlet协程模块 from greenlet import greenlet def test1(): print("12") #切换到gr2协程 gr2.switch() print("34") def test2(): print("56") #切换到gr1协程 gr1.switch() if __name__ == '__main__': #创建协程 gr1 = greenlet(test1) gr2 = greenlet(test2) #从主线程切换到gr1协程 gr1.switch() print("78")
# genev 模块
#gevent 当遇到阻塞,gevent会自动切换,使cpu利用率达到将近100% #gevent协程模块自动执行切换,减少了手动切换协程顺序的麻烦 #使用 #gevent.joinall([协程,协程1,协程2]) 将协程加入到协程列表 #gevent.spawn(target) 创建协程 #gevent.joinall([gevent.spawn(target1),gevent.spawn(target2)])# 结合一起 import gevent def test1(): print(12) print(34) def test2(): print(56) if __name__ == '__main__': gevent.joinall([ gevent.spawn(test1), gevent.spawn(test2) ])
二十一.Python协程
最新推荐文章于 2024-06-04 17:36:26 发布