python gevent
genvent.spawn创建的协程在gevent.sleep交出所有权并且像生成器一样将栈帧保存起来,后面又重新获取所有权执行之后,会丢失之前保存起来的栈帧吗?我现在就碰到这个问题,当创建协程少的时候不会有问题,创建协程多就会碰到这个问题。我把gevent.sleep改成time.sleep不交出所有权就不会出现该问题,但是如果把gevent.sleep改成time.sleep,协程就没有意义了
代码如下:
在协程函数内部:
ssh.sendline(‘ls’)
ssh.expect([r']#'], timeout = 30) #可以正常返回
gevent.sleep(5) #交出协程控制权
ssh.sendline(‘ls’)
ssh.expect([r']#'], timeout = 30) #如果以上用了gevent.sleep,则会抛出超时异常,我怀疑gevent.sleep之前的ssh和之后的ssh已经不同了,如果以上用time.sleep,则此句可以正常返回
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
引用来自“BrankoJuan”的评论
问题已经得到解决,是因为没有打monkey补丁的缘故
问题已经得到解决,是因为没有打monkey补丁的缘故