gpt4 book ai didi

python - 使用 `concurrent.futures.Future` 作为 promise

转载 作者:太空狗 更新时间:2023-10-29 18:06:34 25 4
gpt4 key购买 nike

在 Python 中 docs我明白了:

concurrent.futures.Future... ...should not be created directly except for testing.

我想在我的代码中将它用作 promise ,我很惊讶不建议这样使用它。

我的用例:
我有一个单个 线程读取来自套接字的数据包,并且我有许多 根据数据包中包含的某些信息调用的回调。数据包是对消费者请求的响应,所有消费者使用单一连接。每个消费者都会收到一个 promise 并向其添加一些处理程序,这些处理程序在响应到达时被调用。

所以我不能在这里使用 Executor 子类,因为我只有一个线程,但我需要创建许多 Futures( promise )。

Promise 是一种非常普遍的编程技术,我认为 Future 是 Python 的 promise 实现。但如果不建议像 promise 那样使用它,有哪些 pythonistas 通常用于此目的?

注意事项

我使用 Python 2.7 backport of concurrent.futures to 2.7

最佳答案

为了将非 promise API 包装到 promise 中,使用 Future 非常很好

一般不应该创建它的原因是因为大多数时候人们直接创建 future 是因为它们是 doing the deferred anti pattern并包装一个执行者在另一个 future 创造 future 。

值得一提的是,这个 future 实现非常薄弱,它类似于 Java 的旧 futures,promises 给你的很酷的东西就像链接完全缺失一样。值得一提的是,像 JavaScript 这样的语言 got their promises来自 Python 的 Twisted,它有更好的实现,即使它与其他东西交织在一起。

关于python - 使用 `concurrent.futures.Future` 作为 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com