python中利用Future对象回调别的函数示例代码

发布时间 - 2026-01-11 03:08:53    点击率:

前言

本文主要给大家介绍了关于python中用Future对象回调别的函数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

Future对象也可以像协程一样,当它设置完成结果时,就可以立即进行回调别的函数

例子如下:

import asyncio 
import functools 
 
 
def callback(future, n): 
 print('{}: future done: {}'.format(n, future.result())) 
 
 
async def register_callbacks(all_done): 
 print('registering callbacks on future') 
 all_done.add_done_callback(functools.partial(callback, n=1)) 
 all_done.add_done_callback(functools.partial(callback, n=2)) 
 
 
async def main(all_done): 
 await register_callbacks(all_done) 
 print('setting result of future') 
 all_done.set_result('the result') 
 
 
event_loop = asyncio.get_event_loop() 
try: 
 all_done = asyncio.Future() 
 event_loop.run_until_complete(main(all_done)) 
finally: 
 event_loop.close() 

输出结果如下:

registering callbacks on future
setting result of future
1: future done: the result
2: future done: the result

在这个例子里,先调用函数add_done_callback()来注册一个回调函数,由于只支持一个参数,使用functools.partial来作一个封装。当set_result()函数调用之后,就立即进行回调函数的运行。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# python  # future对象  # 回调函数  # 使用  # Python通过future处理并发问题  # python concurrent.futures模块的使用测试  # Python concurrent.futures模块使用实例  # Python并发编程之未来模块Futures  # 回调  # 相关内容  # 在这个  # 说了  # 不多  # 给大家  # 这篇文章  # 谢谢大家  # 来作  # 就可以  # 当它  # 有疑问  # class  # brush  # pre  # def  # import  # asyncio  # functools  # py 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel怎么在Blade中安全地输出原始HTML内容  zabbix利用python脚本发送报警邮件的方法  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  JS弹性运动实现方法分析  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel如何处理和验证JSON类型的数据库字段  如何在阿里云完成域名注册与建站?  使用豆包 AI 辅助进行简单网页 HTML 结构设计  ,在苏州找工作,上哪个网站比较好?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  🚀拖拽式CMS建站能否实现高效与个性化并存?  浅析上传头像示例及其注意事项  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  三星、SK海力士获美批准:可向中国出口芯片制造设备  JavaScript中的标签模板是什么_它如何扩展字符串功能  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel如何使用Blade组件和插槽?(Component代码示例)  php打包exe后无法访问网络共享_共享权限设置方法【教程】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何配置Horizon来管理队列?(安装和使用)  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  个人摄影网站制作流程,摄影爱好者都去什么网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Android okhttputils现在进度显示实例代码  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Swift开发中switch语句值绑定模式  如何在 Pandas 中基于一列条件计算另一列的分组均值  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何在建站主机中优化服务器配置?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Android实现代码画虚线边框背景效果  如何在IIS7中新建站点?详细步骤解析  香港服务器选型指南:免备案配置与高效建站方案解析  Linux安全能力提升路径_长期防护思维说明【指导】  JavaScript如何实现音频处理_Web Audio API如何工作?