Eventlet库: Python基于携程的网络库的实现及功能简介

Eventlet库是什么?

Eventlet库: Python基于携程的网络库的实现及功能简介

EventLet是Python的Conciont网络库,所有Bouchene都如何运行代码,而不是如何编写代码。

本段摘自官方文件介绍。 Evenlet是一个基于Python的网络库。它更改了您的代码运行方法,但不会改变您编写代码的方式。

Eventlet是如何实现的?

Eventlet被重写一些系统库,例如Python,例如套接字,线程,OS等,并封装了其他两个库Greenlet(Coroutine Library)和Epoll(基于Linux库)。

如何使用Eventlet?

实际上有非常详细的官方文件示例。这里有一些示例来解释简单且常用的事件使用情况。

1。从Eventlet.green导入相关库

import eventlet
from eventlet.green import urllib2
urls = [
    "https://www.google.com/intl/en_ALL/images/logo.gif",
    "http://python.org/images/python-logo.gif",
    "http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif",
]
def fetch(url):
    print("opening", url)
    body = urllib2.urlopen(url).read()
    print("done with", url)
    return url, body
pool = eventlet.GreenPool(200)
for url, body in pool.imap(fetch, urls):
    print("got body from", url, "of length", len(body))

此Web爬行动物的示例是使用Eventlet重写的Urllib2库。代码逻辑非常简单。主要是要知道原始库应从Eventlet.green导入。

2。使用Spawn生成公司

import eventlet
def test(x):
    print(f'Greenthread test Num:{x}')
    eventlet.greenthread.sleep(1)
    return x
def test1(y):
    print(f'Greenthread test1 Num:{y}')
    return y
x = eventlet.spawn(test, 1)
y = eventlet.spawn(test1, 2)
x.wait()
#Greenthread test1 Num:2
#Greenthread test Num:1
#1

Spawn函数生成的Coroutine可以通过等待函数执行并获得。在示例中,因为遇到Eventlet.greenthread.sleep(1)没有顺序。根据计算机随机执行。

我的最终注释的输出结果将获得不同的结果。这应该与机器输出的程序有关。测试功能中的相邻时间太短。如果打印功能放在背面,则输出将输出。它将始终首先由Test1打印。然后

除Spawn外,Greenpool,Spawn_n和Greenpool的使用也写在第一个网络爬行中。

为什么Spawn不需要使用Greenlet库?

我认为这个问题对于理解事件至关重要。如果您想完全清楚并用一些简单的话说我的理解,这可能并不容易:

EventLet重写系统IO库,并使用一些Python魔法方法和其他方法将这些重写的IO库放在Spawn生成的Grethread上,以自动在代码执行IO操作时自动非块。

Eventlet的异步模式

Eventlet的异步模式主要使用存储GreenthRead的枢纽。当Coroutine遇到IO操作时,将CPU控件返回到集线器,然后轮毂派遣另一个Coroutine。这类似于IO Multi -Way重复使用。

放置图片以促进了解公司,集线器,线程,流程差异

image.png

最后一个问题

如果您认为自己了解Eventlet,您能考虑一下,只要Spawn生成的Coroutine毫不动摇吗?

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

31阅读

外国教程python,python编程教学视频

2026年09月02日

26阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

27阅读

python教程大全集,python教程600集

2026年09月02日

27阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

23阅读