python3.8使用gevent,还需要打猴子补丁吗?
时间: 2024-05-23 15:13:06 浏览: 17
在 Python 3.8 中,已经内置了 `asyncio` 库,不再需要使用 `gevent` 这样的第三方库来实现异步操作。但是如果你仍然想使用 `gevent` 库来实现协程,那么需要打猴子补丁来替换一些标准库中的阻塞式 I/O 操作,以便使它们非阻塞化,从而实现协程的目的。具体来说,你需要使用 `gevent.monkey.patch_all()` 方法来打猴子补丁。这个方法会自动替换所有可以替换的标准库中的阻塞式 I/O 操作,例如 `socket`、`ssl`、`select`、`subprocess` 等等。不过,需要注意的是,打猴子补丁可能会带来一些副作用,因此建议谨慎使用。
相关问题
Python gevent 是如何 patch 标准库的 ?
gevent是一个Python的第三方库,它提供了一种协程风格的并发编程的解决方案。在使用gevent时,可以使用它提供的monkey patching机制来自动替换标准库中的一些阻塞式调用,以实现协程式的异步IO。
具体来说,gevent通过覆盖标准库中的某些阻塞操作,来使这些操作变为非阻塞式的。例如,gevent会替换标准库中的socket模块,以使其在使用阻塞IO时自动切换到其他协程,而不是像原来那样一直阻塞在那里。
gevent通过使用Greenlet来实现协程式的并发,Greenlet是一个轻量级的协程实现,它提供了一个与线程类似的API,但是却比线程更加轻量级,可以在一个线程中运行多个协程。
总之,gevent的monkey patching机制可以让标准库中的某些阻塞式调用变为非阻塞的,从而实现协程式的异步IO。
python2安装gevent
首先需要确认你的电脑上安装了pip,如果没有安装可以使用如下命令进行安装:
```
sudo apt-get update
sudo apt-get install python-pip
```
然后使用pip安装gevent:
```
sudo pip install gevent
```
如果你的电脑上同时安装了Python2和Python3,你也可以使用pip2来安装gevent:
```
sudo pip2 install gevent
```
安装完成后,你可以在Python中使用gevent。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)