当前位置: 首页 > 后端技术 > Python

在eventlet中使用gevent的sleep可以避免阻塞吗?

时间:2023-03-26 00:17:51 Python

不能!fromloguruimportloggerimportgevent#fromgeventimportmonkey#monkey.patch_all()importeventleteventlet.monkey_patch()deffoo(i):gevent.sleep(1)pool=eventlet.GreenPool()forbodyinpool.imap(foo,[iforiinrange(2)]):print("gotbody",body)运行结果:╰─?timepythoneventlet_with_gevent_sleep.pygotbodyNonegotbodyNonepythoneventlet_with_gevent_sleep.py0.39suser0.05ssystem17%cpu2.515从总计可以看出,用了2秒多。fromloguruimportloggerimportgevent#fromgeventimportmonkey#monkey.patch_all()importeventleteventlet.monkey_patch()deffoo(i):eventlet.sleep(1)pool=eventlet.GreenPool()forbodyinpool.imap(foo,[iforiinrange(2)]):print("gotbody",body)运行结果:─?timepythoneventlet_with_gevent_sleep.pygotbodyNonegotbodyNonepythoneventlet_with_gevent_sleep.py0.41suser0.05ssystem29%cpu1.594totalUsingeventlet变得正常