use*_*336 2 python gevent python-2.7 greenlets
我是一名 Java 开发人员并开始学习 Python 语言,最近我遇到了使用异步 greenlets 的 Python Gevent 库。有人可以解释我,如何使用 Gevent 在 Python 中同步、死锁、活锁工作/避免。
使用 gevent 编写并发应用程序不同于使用多线程或多进程的应用程序。它允许您使用同步逻辑编写并发应用程序,并且一次只能运行一个 greenlet。
如果您创建了许多greenlet,并且它们应该访问相同的资源但它们没有合作关系,那么您不必使用锁来控制它们访问共享资源,因为一次只能运行一个greenlet。在greenlet遇到一些可以将执行交给hub greenlet的操作之前,它会一直运行直到它返回。
如果你创建的greenlets有合作关系,你可以像在Java中一样使用gevent提供的锁。
以下是一些可能对您有所帮助的资源: