当前位置: 首页 > news >正文

Python 异步执行 Threading

简介
  • 异步执行模式,是指语句在异步执行模式下,各语句执行结束的顺序与语句执行开始的顺序并不一定相同。
  • 同步执行时任务需要顺序执行,后续任务需要先置任务执行完成后才能运行;异步任务则是后续任务不需要等到先置任务返回结果,自顾自就运行起来的一种任务调度方式,通过状态、通知、回调来通知调用者处理结果,常用于高并发的服务请求任务以及IO密集型任务的并行加速。

  • 异步执行方式使应用程序能摆 脱单个任务的牵制,提高了灵活性和应用程序的执行效率。但异步执行模式也存在一些问题,如它增加了编程的复杂性,特别是编写互用性(interoperable)要求较高 的程序。
Threading 实现异步运行
  • 可以通过多线程实现任务异步执行,原理是当前任务直接开一个线程去干,自己去处理后面的任务,示例代码:

1234567891011121314151617181920212223242526272829

from threading import Threadfrom time import sleepdef async_call(fn): def wrapper(*args, **kwargs): Thread(target=fn, args=args, kwargs=kwargs).start() return wrapper@async_calldef A(): # self.__count += 1 print("现在在执行A函数") print('A函数睡眠3秒钟') sleep(3) print("A函数执行完毕") returndef B(): print("现在在执行B函数")if __name__ == "__main__": A() B()

输出

1234

现在在执行B函数 现在在执行A函数 A函数睡眠3秒钟 A函数执行完毕

由于 A 在运行中创建线程有些开销,导致 B 反倒先执行了,也表示异步执行可能会发生一些奇怪的事。

多线程可以嵌套创建实现嵌套异步任务

12345678910111213141516171819202122232425262728293031323334353637383940

from threading import Threadfrom time import sleepdef async_call(fn): def wrapper(*args, **kwargs): Thread(target=fn, args=args, kwargs=kwargs).start() return wrapper@async_calldef C(): # self.__count += 1 print("现在在执行C函数") print('C函数睡眠1秒钟') sleep(2) print("C函数执行完毕") return@async_calldef A(): # self.__count += 1 print("现在在执行A函数") print('A函数睡眠3秒钟') C() sleep(3) print("A函数执行完毕") returndef B(): print("现在在执行B函数")if __name__ == "__main__": A() B()

输出

1234567

现在在执行B函数 现在在执行A函数 A函数睡眠3秒钟 现在在执行C函数 C函数睡眠1秒钟 C函数执行完毕 A函数执行完毕

http://www.jsqmd.com/news/461966/

相关文章:

  • 吊打面试官?MySQL 高频面试题/知识点全收录(2026 最新版)
  • MGeo地址结构化应用场景:应急管理系统中灾害地址自动分级与救援资源调度
  • Nomic-Embed-Text-V2-MoE在网络安全领域的应用:恶意文本意图识别
  • Qwen2.5-Coder-1.5B保姆级部署教程:3步搞定你的专属代码助手
  • 硅基光电子技术实战:从实验室到产业化的关键步骤与挑战
  • 企业云盘怎么选?2026年18款核心产品横向测评(含协同与安全对比)
  • 手把手教你用Qwen3-VL-2B:快速搭建自己的图片问答机器人
  • SenseVoice-Small语音识别入门:C语言调用ONNX Runtime推理引擎教程
  • ResNet101+MogFace人脸检测镜像详解:小尺度/遮挡人脸识别参数与调优步骤
  • C语言回调函数,提升C技巧必备
  • 5 块钱的无线调试器就这么做好了?
  • 别再混淆网关类型!Camunda中Inclusive/Exclusive/Parallel网关的5个核心区别与选型指南
  • PP-DocLayoutV3真实作品:学位论文首页→doc_title+author+institution+abstract全要素提取
  • AI写的期刊论文靠谱吗?2025年12款写论文的AI推荐,参考文献真实可靠!
  • DAMOYOLO-S对比YOLOv11:速度与精度实测效果分析
  • HC-SR04超声波测距模块在智能小车避障系统中的应用
  • 机器人演示效果好吗?现场同步核对
  • 圣女司幼幽-造相Z-Turbo在儿童美育中的应用:安全过滤后的国风神话角色创意绘画工具
  • STM32 HAL库实现RTC闹钟动态间隔触发(代码详解+优化思路)
  • SpringBoot+Vue 大学生平时成绩量化管理系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 基于springboot琼瑶品鉴平台的设计与实现
  • 照着用就行:10个降AI率网站深度测评与推荐
  • 不用写代码!用开源项目MoneyPrinterTurbo打造你的AI短视频工厂(支持GPT-4和Moonshot)
  • Cogito-3B一键量化方案:Ollama快速部署,无需代码5分钟上手
  • 【技术突破】FPGA加速CNN:实时推理的并行计算架构与落地实践
  • Qwen3-Reranker-8B企业级部署:Java微服务集成全指南
  • 零基础小白必看:AI净界RMBG-1.4部署与使用全攻略
  • c语言之函数篇
  • AgentCPM深度研报助手与YOLOv11结合:从研报图表中提取结构化数据
  • 2026年湖北工商注册与资质办理靠谱服务商深度解析 - 2026年企业推荐榜