Eventlet vs Greenlet vs gevent?



我正在尝试创建一个具有事件循环的 GUI 框架。 一些线程用于处理 UI,一些线程用于事件处理。我搜索了一下,找到了这三个库,我想知道哪个更好用?有什么优点和缺点?

我可以使用这三个库之一,甚至可以通过使用 python 线程并发库为自己创建一些东西。

我希望分享任何类型的经验,基准和比较。

  • 你绝对不需要 greenlet 来实现这个目的,因为它是一个低级库,你可以在上面创建轻线程库(如 Eventlet 和 Gevent)。
  • Eventlet,Gevent和更多类似的库为IO绑定任务(等待文件,网络上的读/写)提供了出色的工具集。
  • 很可能,您的大多数 GUI 代码将等待其他线程(此时绿色/浅色/OS 线程无关紧要)完成,这是上述库的完美目标。
  • 所有绿色线程库大多相同。尝试所有并确定哪一个最适合您的项目。
  • 但是,由于操作系统级别 GUI 层的要求,您可能需要将某些内容提取到单独的操作系统线程中。
  • 考虑到这一点以及在 Python3 中更好地实现线程锁,如果您的应用程序不需要数百个或更多线程,您可能只想坚持使用本机threading模块。

最新更新