python gevent

发布于 2021-12-01 09:42:39 字数 633 浏览 798 评论 2

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

把昨日还给我 2021-12-02 17:00:35

引用来自“BrankoJuan”的评论

问题已经得到解决,是因为没有打monkey补丁的缘故

半世蒼涼 2021-12-01 15:20:55

问题已经得到解决,是因为没有打monkey补丁的缘故

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文