python gevent

BrankoJuan 发布于 2016/09/06 21:47
阅读 314
收藏 0

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,则此句可以正常返回


加载中
0
B
BrankoJuan
问题已经得到解决,是因为没有打monkey补丁的缘故
0
乌龟壳
乌龟壳

引用来自“BrankoJuan”的评论

问题已经得到解决,是因为没有打monkey补丁的缘故
gevent.sleep还用打补丁?是其它部分代码的问题吧。
返回顶部
顶部