【发布时间】:2014-02-01 23:01:51
【问题描述】:
我有一个 python 库,它通过多播执行异步网络,它可能会从其他服务中获得回复。它通过返回将捕获回复的Future 来隐藏肮脏的工作。我正在将此库集成到现有的 gevent 应用程序中。调用模式很简单:
future = service.broadcast()
# next call blocks the current thread
reply = future.result(some_timeout)
在后台,concurrent.futures.Future.result() 使用 threading.Condition.wait()。
使用猴子补丁的线程模块,这看起来很好且安全,并且不会阻塞 greenlets。
在这里或混合gevent 和concurrent.futures 时有什么理由担心吗?
【问题讨论】:
-
很有趣,我们看到一些混合了 python3 的新本机并发原语和旧的主力 gevent(现在它可以在 python3 上运行。)很高兴在下面看到它似乎对你有用。
标签: python multithreading concurrency gevent