Python中的同步 - Gevent多线程环境

时间:2013-12-17 08:40:11

标签: python python-2.7 gevent greenlets

作为一名java Developer并开始学习python语言,最近我遇到了使用Asynchronous greenlets的Python Gevent库。有人可以解释我,使用Gevent在Python中如何同步,死锁,活锁/避免使用。

  • 在Java线程中,我们有同步块,可以防止上述问题

1 个答案:

答案 0 :(得分:4)

使用gevent编写并发应用程序与使用多线程或多进程的应用程序不同。它允许您使用同步逻辑编写并发应用程序,并且一次只能运行一个greenlet。

如果您创建了许多greenlet并且它们应该访问相同的资源但它们没有合作关系,那么您不必使用锁来控制它们访问共享资源,因为只有一个greenlet可以在时间。直到greenlet遇到一些可以将执行交给 hub greenlet的操作,它才会一直运行直到它返回。

如果你创建的greenlets有合作关系,你可以使用gevent提供的锁作为你在Java中使用的方式。

这里有一些资源可以帮到你: