Eventlet vs Greenlet vs gevent?
Eventlet vs Greenlet vs gevent?
我正在尝试创建一个具有事件循环的 GUI 框架。一些线程处理 UI 一些线程处理事件。我搜索了一下,找到了这三个库,我想知道哪个更好用?优点和缺点是什么?
我可以使用这三个库之一,甚至可以使用 python threads 或 concurrent 为自己创建一些东西图书馆。
如果能分享任何类型的经验、基准和比较,我将不胜感激。
- 您绝对不希望 greenlet 用于此目的,因为它是一个低级库,您可以在其上创建轻线程库(如 Eventlet 和 Gevent)。
- Eventlet、Gevent 和更多类似的库为 IO 绑定任务(在文件、网络上等待 read/write)提供了出色的工具集。
- 您的大部分 GUI 代码可能会等待其他线程(此时 green/light/OS 线程无关紧要)完成,这是上述库的完美目标。
- 所有的绿色线程库都大同小异。尝试所有并决定哪一个最适合您的项目。
- 但由于 OS 级 GUI 层的要求,您也可能需要将一些内容提取到单独的 OS 线程中。
- 考虑到 Python3 中线程锁的更好实现,如果您的应用程序不需要数百个或更多线程,您可能只想坚持使用本机
threading
模块。
我正在尝试创建一个具有事件循环的 GUI 框架。一些线程处理 UI 一些线程处理事件。我搜索了一下,找到了这三个库,我想知道哪个更好用?优点和缺点是什么?
我可以使用这三个库之一,甚至可以使用 python threads 或 concurrent 为自己创建一些东西图书馆。
如果能分享任何类型的经验、基准和比较,我将不胜感激。
- 您绝对不希望 greenlet 用于此目的,因为它是一个低级库,您可以在其上创建轻线程库(如 Eventlet 和 Gevent)。
- Eventlet、Gevent 和更多类似的库为 IO 绑定任务(在文件、网络上等待 read/write)提供了出色的工具集。
- 您的大部分 GUI 代码可能会等待其他线程(此时 green/light/OS 线程无关紧要)完成,这是上述库的完美目标。
- 所有的绿色线程库都大同小异。尝试所有并决定哪一个最适合您的项目。
- 但由于 OS 级 GUI 层的要求,您也可能需要将一些内容提取到单独的 OS 线程中。
- 考虑到 Python3 中线程锁的更好实现,如果您的应用程序不需要数百个或更多线程,您可能只想坚持使用本机
threading
模块。