news 2026/7/15 1:06:56

python中的异步编程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python中的异步编程

一、异步、同步、伪异步

情况调用方式说明
调用异步函数必须用awaitresult = await async_func()
调用同步函数直接调用,不用awaitresult = sync_func()
调用同步函数但不阻塞asyncio.to_thread()result = await asyncio.to_thread(sync_func)

1.异步

协程机制:暂停 - 恢复 这个函数在执行等待的时候,资源可以释放给其它操作使用
#异步函数执行器asyncio.run(协程对象) async def init_async_milvus(): async_client = AsyncMilvusClient( uri="http://192.168.88.14:19530" ) return async_client # 核心:创建事件循环 → 初始化客户端 → 关闭事件循环 res = asyncio.run(init_async_milvus()) print(res)

2.同步

执行任务的时候,必须等这个任务执行完才释放资源,就算等待了,其他人也无法拿到资源

3.伪异步

(1)其实还是同步,只是给这个同步单独开了一个线程,

(2) async_search协程在等待similarity_search完成时,会释放事件循环的控制权,让其他协程可以运行。

(3)由于similarity_search是在线程中运行,所以它的阻塞不会影响事件循环。

示例 async def get_vector_store(): """在异步环境中初始化向量存储""" llm_embeddings = DashScopeEmbeddings( model="text-embedding-v4", dashscope_api_key=os.getenv("ali_api_key") ) vector_store = Milvus( embedding_function=llm_embeddings, connection_args={"uri": "http://192.168.88.14:19530"}, collection_name="LangChainCollection" ) return vector_store async def async_search(): """异步相似性搜索""" vector_store = await get_vector_store() # 使用 to_thread 替代 run_in_executor docs = await asyncio.to_thread( vector_store.similarity_search, k=4,query="猫咪", ) return docs # 定义主异步函数 async def main(): # 在异步环境中初始化 # 使用向量存储进行搜索 docs = await async_search() print(docs) # 运行主异步函数 if __name__ == "__main__": asyncio.run(main())
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 3:34:19

YOLOv5模型蒸馏教学:小型PyTorch模型生成

YOLOv5模型蒸馏实战:基于PyTorch-CUDA的轻量化部署方案 在边缘计算和移动端AI应用日益普及的今天,如何让高性能目标检测模型“瘦身”并高效运行于资源受限设备,已成为开发者面临的核心挑战。YOLOv5作为工业界广泛采用的目标检测框架&#xf…

作者头像 李华
网站建设 2026/7/10 12:13:09

医疗领域大数据文本分析的挑战与突破

医疗领域大数据文本分析的挑战与突破:从“信息汪洋”到“价值金矿” 引言:医疗文本里藏着未被挖掘的“生命密码” 凌晨3点的医院急诊科,医生正在快速翻阅患者的电子病历:“男性,62岁,突发胸痛2小时&#xf…

作者头像 李华
网站建设 2026/7/7 3:47:25

Jupyter Notebook保存检查点:防止PyTorch训练中断丢失进度

Jupyter Notebook 中的 PyTorch 训练检查点实践:防止意外中断导致进度丢失 在深度学习项目中,一次训练动辄几十甚至上百个 epoch,跑上十几个小时并不罕见。尤其是当你在调试一个复杂的 Transformer 模型,或者用 ResNet 做大规模图…

作者头像 李华
网站建设 2026/7/14 22:20:26

彼得林奇如何评估公司的数据安全投资回报

彼得林奇如何评估公司的数据安全投资回报 关键词:数据安全、投资回报、彼得林奇、风险评估、安全指标、成本效益分析、安全投资策略 摘要:本文探讨了传奇投资者彼得林奇(Peter Lynch)的投资方法论如何应用于评估公司数据安全投资的回报率(ROI)。我们将分析林奇的"了解你…

作者头像 李华