gpt4 book ai didi

python - python gevent库的monkeypatching是什么?

转载 作者:行者123 更新时间:2023-12-05 01:02:38 25 4
gpt4 key购买 nike

我正在阅读 http://sdiehl.github.io/gevent-tutorial/ .在页面底部的示例中,我看到:

import gevent.monkey
gevent.monkey.patch_socket()

我已阅读 What is a monkey patch? ,它对猴子补丁进行了一般性讨论,但我不明白为什么用 gevent 引用猴子补丁。

最佳答案

Gevent 是一个协作式多任务库。它的工作方式是你,程序员,将你的代码组织成称为greenlets的工作单元。当一个给定的greenlet运行时,它单独运行。当它到达一个它会阻塞的点时,也就是说,它必须等待一些外部信号,比如文件、超时、我们的网络数据,greenlet 应该合作通过向 gevent 发出信号,由谁安排让其他一些greenlet运行。一旦它等待的数据准备好,之前的绿色将恢复。 (这是它的蜡笔色要点,可能有一些复杂性对您有用,这超出了这个答案的范围。)

现在,Python 的标准库(曾经?)不合作。与其向 gevent 发出可以暂停某个 greenlet 的信号,不如说是自私地阻止。这会导致一个问题,因为只有第一个 greenlet 正在运行:其他的都没有机会被安排。

输入金钱补丁。 monkey.patch 的重点是将 stdlib 中的阻塞调用替换为协作替代方案,这样现有代码就可以利用 greenlets 的并发性而无需重写。

关于python - python gevent库的monkeypatching是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com