<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[铭渊老黄]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/windowshht</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; windowshht]]></copyright><item><title><![CDATA[Python gevent 深度解析：为什么猴子补丁能让同步代码拥有异步能力？从底层原理到高并发实战]]></title><link>https://blog.csdn.net/windowshht/article/details/168874315</link><guid>https://blog.csdn.net/windowshht/article/details/168874315</guid><author>windowshht</author><pubDate>Fri, 23 Oct 2026 14:25:18 +0800</pubDate><description><![CDATA[gevent通过猴子补丁替换Python标准库的阻塞I/O操作，将time.sleep、socket等改为协作式等待，结合Greenlet与事件循环实现协程并发。开发者无需使用async/await，即可让同步代码在单线程中高效并发执行，显著提升I/O密集型任务性能。]]></description><category></category></item><item><title><![CDATA[React Native与Flutter长期维护成本对比]]></title><link>https://blog.csdn.net/windowshht/article/details/168768448</link><guid>https://blog.csdn.net/windowshht/article/details/168768448</guid><author>windowshht</author><pubDate>Thu, 22 Oct 2026 16:11:33 +0800</pubDate><description><![CDATA[评估 React Native (RN) 与 Flutter 的长期维护成本，需从及四个核心维度进行量化分析。]]></description><category></category></item><item><title><![CDATA[从零手写 Python 线程池：用 Work Queue + Condition 吃透 ThreadPoolExecutor 的底层原理]]></title><link>https://blog.csdn.net/windowshht/article/details/168119180</link><guid>https://blog.csdn.net/windowshht/article/details/168119180</guid><author>windowshht</author><pubDate>Fri, 16 Oct 2026 10:53:25 +0800</pubDate><description><![CDATA[本文从零手写线程池，揭示 ThreadPoolExecutor 的底层原理：使用 deque 作任务队列，Condition 实现线程等待与唤醒，结合 while 循环确保状态正确性，并通过简化版 Future 实现结果返回。核心在于“任务排队、线程复用”，避免忙等待与锁滥用，深入理解并发模型后，可清晰掌握线程池、生产者消费者等经典模式的本质。]]></description><category></category></item><item><title><![CDATA[Python 并发实战：ThreadPoolExecutor 与 ProcessPoolExecutor 到底该怎么选？]]></title><link>https://blog.csdn.net/windowshht/article/details/168118632</link><guid>https://blog.csdn.net/windowshht/article/details/168118632</guid><author>windowshht</author><pubDate>Fri, 16 Oct 2026 10:50:03 +0800</pubDate><description><![CDATA[在Python并发中，选择ThreadPoolExecutor还是ProcessPoolExecutor，核心在于任务类型：I/O密集型（如网络请求、文件读写）优先线程池，因阻塞时GIL释放，可高效重叠等待；CPU密集型（如数值计算）应选进程池，以绕过GIL限制，真正利用多核。尽管理论指导明确，但最终需通过真实基准测试验证。同时注意进程池的序列化与__main__保护要求。]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.csdn.net/windowshht/article/details/167786895</link><guid>https://blog.csdn.net/windowshht/article/details/167786895</guid><author>windowshht</author><pubDate>Tue, 13 Oct 2026 10:28:48 +0800</pubDate><description><![CDATA[本文深入解析Python属性访问机制，重点对比__getattribute__（拦截所有访问）与__getattr__（仅处理缺失属性）的差异。通过实战案例揭示重写__getattribute__时易引发递归死循环的陷阱，并提供正确使用object.__getattribute__()绕过自引用的方法。结合对象代理（Proxy）与ORM懒加载等场景，展示如何利用该机制实现属性日志、动态转发与延迟加载，助力掌握Python高级面向对象设计与框架开发核心能力。]]></description><category></category></item><item><title><![CDATA[Descriptor：Python 面向对象体系的隐藏核心——从属性访问机制到 ORM 框架设计实战]]></title><link>https://blog.csdn.net/windowshht/article/details/167784488</link><guid>https://blog.csdn.net/windowshht/article/details/167784488</guid><author>windowshht</author><pubDate>Tue, 13 Oct 2026 10:08:45 +0800</pubDate><description><![CDATA[Python 的面向对象核心在于 Descriptor 机制。它决定了属性访问的优先级：数据描述器（含 __set__）> 实例字典 > 非数据描述器 > 类属性。property、ORM 字段、方法绑定等均依赖此机制。理解 Descriptor，才能掌握 Django/SQLAlchemy 等框架如何实现“像操作普通对象一样操作数据库”的底层原理。]]></description><category></category></item><item><title><![CDATA[Python import 底层机制深度解析：从模块缓存、循环导入到插件系统与冷启动优化]]></title><link>https://blog.csdn.net/windowshht/article/details/167651440</link><guid>https://blog.csdn.net/windowshht/article/details/167651440</guid><author>windowshht</author><pubDate>Mon, 12 Oct 2026 08:01:35 +0800</pubDate><description><![CDATA[本文深度解析Python import底层机制，揭示模块缓存、循环导入、importlib协作原理及冷启动优化策略。通过实验展示sys.modules缓存机制如何避免重复执行模块代码，并剖析导入流程：模块查找→对象创建→缓存登记→代码执行。结合插件系统设计与启动性能优化案例，将底层原理转化为可落地的最佳实践，帮助开发者理解并解决实际工程问题。]]></description><category></category></item><item><title><![CDATA[Python 内存管理深度解析：从引用计数、垃圾回收到内存泄漏定位的完整实战指南]]></title><link>https://blog.csdn.net/windowshht/article/details/167120079</link><guid>https://blog.csdn.net/windowshht/article/details/167120079</guid><author>windowshht</author><pubDate>Mon, 05 Oct 2026 09:49:44 +0800</pubDate><description><![CDATA[本文深度解析Python内存管理机制，涵盖引用计数、分代垃圾回收及内存泄漏定位。从对象生命周期到PyMalloc内存分配，详解循环引用问题与GC解决方案，并结合memory_profiler、tracemalloc等工具实战排查内存泄漏，助力开发者优化大型Python应用性能。]]></description><category></category></item><item><title><![CDATA[Python 对象模型深度解析：从“一切皆对象”到 id、type、isinstance 底层机制与小整数缓存原理]]></title><link>https://blog.csdn.net/windowshht/article/details/167119962</link><guid>https://blog.csdn.net/windowshht/article/details/167119962</guid><author>windowshht</author><pubDate>Mon, 05 Oct 2026 09:47:02 +0800</pubDate><description><![CDATA[Python中“一切皆对象”意味着所有数据类型（如整数、字符串、函数、类）均为对象，变量存储的是对象引用而非值本身。id()返回对象唯一标识（内存地址），is判断是否为同一对象，==比较值是否相等。type()和isinstance()分别用于获取类型与判断继承关系。CPython对-5至256的整数进行缓存，实现小整数复用，提升性能。理解对象模型有助于编写高效、稳定的代码。]]></description><category></category></item><item><title><![CDATA[从 Python 到生产级 AI Chat：Streaming、Session 与 Memory 架构设计全解析]]></title><link>https://blog.csdn.net/windowshht/article/details/166827821</link><guid>https://blog.csdn.net/windowshht/article/details/166827821</guid><author>windowshht</author><pubDate>Tue, 29 Sep 2026 07:16:10 +0800</pubDate><description><![CDATA[本文从简单 Python Chat 项目出发，剖析生产级 AI Chat 系统的三大核心：Streaming（流式输出，降低首字延迟）、Session（管理对话状态，实现上下文记忆）、Memory（持久化用户历史，支持跨会话理解）。通过构建带状态的 ChatSession、使用 Redis 存储会话、结合 FastAPI 生成器实现流式响应，完整呈现从原型到可扩展架构的设计思路，兼顾 Python 工程实践与 AI 系统性能优化。]]></description><category></category></item><item><title><![CDATA[从 Python 到 GPU 集群：设计一个支持 Queue 与 Autoscaling 的在线 AI 推理平台]]></title><link>https://blog.csdn.net/windowshht/article/details/166827756</link><guid>https://blog.csdn.net/windowshht/article/details/166827756</guid><author>windowshht</author><pubDate>Tue, 29 Sep 2026 06:40:57 +0800</pubDate><description><![CDATA[本文从Python开发视角出发，设计一套支持队列与自动扩缩容的在线AI推理平台。针对高并发场景下的GPU资源瓶颈，提出“API网关→队列调度→GPU Worker池”的架构，通过异步队列缓冲请求、背压机制防止雪崩、模型预加载与上下文管理优化资源使用，并引入批处理（Batching）提升GPU利用率。核心解决流量突增时的排队、拒绝与弹性伸缩问题，实现稳定高效的生产级推理服务。]]></description><category></category></item><item><title><![CDATA[Python 项目工程化进阶：为什么专业团队推荐 src/ layout？从包结构设计到 Wheel 发布验证的完整实践]]></title><link>https://blog.csdn.net/windowshht/article/details/166365507</link><guid>https://blog.csdn.net/windowshht/article/details/166365507</guid><author>windowshht</author><pubDate>Tue, 22 Sep 2026 15:21:45 +0800</pubDate><description><![CDATA[本文深入解析Python项目工程化中的关键实践——src/layout结构。传统布局因“工作目录导入”导致测试通过但安装失败，而src/layout通过模拟真实安装环境，强制开发者以wheel形式验证包可用性。文章详解import机制、CI/CD中应构建wheel并安装测试，确保发布包与测试环境一致，提升项目可靠性与可维护性，是企业级Python项目的最佳实践。]]></description><category></category></item><item><title><![CDATA[Python 依赖管理进阶：requirements.txt 锁版本真的够了吗？从依赖解析到生产级 Dependency Graph 一致性实践]]></title><link>https://blog.csdn.net/windowshht/article/details/166365377</link><guid>https://blog.csdn.net/windowshht/article/details/166365377</guid><author>windowshht</author><pubDate>Tue, 22 Sep 2026 15:16:05 +0800</pubDate><description><![CDATA[本文探讨Python依赖管理的核心痛点：仅靠requirements.txt锁版本无法保证环境一致性。因未锁定传递依赖，不同环境下解析出的依赖图可能差异巨大，导致生产故障。文章指出pip freeze生成的清单存在冗余、无语义、缺哈希校验等问题。推荐采用分层依赖管理（base/dev/prod）与锁文件机制，结合pip-tools或现代工具uv生成可复现的uv.lock或requirements.txt，实现从开发到生产的完整依赖图一致性，提升CI/CD可靠性与安全性。]]></description><category></category></item><item><title><![CDATA[Python 包工程深度解析：为什么 Build Isolation 如此重要？从 pyproject.toml 到可复现构建的完整实践指南]]></title><link>https://blog.csdn.net/windowshht/article/details/166120271</link><guid>https://blog.csdn.net/windowshht/article/details/166120271</guid><author>windowshht</author><pubDate>Sun, 20 Sep 2026 11:34:45 +0800</pubDate><description><![CDATA[摘要（148字）： Build Isolation 通过在独立环境中构建 Python 包，确保构建结果可复现、稳定且安全。它隔离了开发环境依赖，仅依赖 pyproject.toml 中声明的构建工具链，避免因本地包版本差异导致构建不一致。尤其对含 C 扩展的项目（如 Cython），能保障跨平台编译一致性。同时降低软件供应链风险，是实现企业级 Python 工程化、CI/CD 稳定性和安全性的关键实践。]]></description><category></category></item><item><title><![CDATA[Python 包发布深度解析：wheel 与 sdist 到底有什么区别？从构建、安装到生产部署全面理解 Python 分发机制]]></title><link>https://blog.csdn.net/windowshht/article/details/166117763</link><guid>https://blog.csdn.net/windowshht/article/details/166117763</guid><author>windowshht</author><pubDate>Sun, 20 Sep 2026 11:13:12 +0800</pubDate><description><![CDATA[pyproject.toml 是现代 Python 项目的核心配置文件，统一管理构建、元数据与工具配置。它通过 [build-system] 指定构建依赖与后端（如 hatchling），在 [project] 中定义包信息（名称、版本、依赖等），并在 [tool.xxx] 中配置测试、格式化等工具。其核心价值在于实现构建标准化：前端（如 pip、python -m build）按 PEP 517 调用指定后端，解耦构建逻辑，解决“鸡生蛋”依赖难题，推动 Python 打包生态走向统一与高效。]]></description><category></category></item><item><title><![CDATA[从零看懂 `pyproject.toml`：彻底理清 build-system、project、tool 与现代 Python 打包体系]]></title><link>https://blog.csdn.net/windowshht/article/details/165820446</link><guid>https://blog.csdn.net/windowshht/article/details/165820446</guid><author>windowshht</author><pubDate>Fri, 18 Sep 2026 07:20:34 +0800</pubDate><description><![CDATA[pyproject.toml 是现代 Python 项目的核心配置文件，统一管理构建、元数据与工具配置。它通过 [build-system] 指定构建依赖与后端（如 hatchling），在 [project] 中定义包信息（名称、版本、依赖等），并在 [tool.xxx] 中配置测试、格式化等工具。其核心价值在于实现构建标准化：前端（如 pip、python -m build）按 PEP 517 调用指定后端，解耦构建逻辑，解决“鸡生蛋”依赖难题，推动 Python 打包生态走向统一与高效。]]></description><category></category></item><item><title><![CDATA[当 GIL 不再是天花板：Free-Threaded Python × asyncio 的多事件循环架构实践]]></title><link>https://blog.csdn.net/windowshht/article/details/165819495</link><guid>https://blog.csdn.net/windowshht/article/details/165819495</guid><author>windowshht</author><pubDate>Fri, 18 Sep 2026 07:15:31 +0800</pubDate><description><![CDATA[Free-threaded Python（CPython 3.14+）打破GIL限制，使多线程并行执行成为可能。在asyncio中，多个线程各自运行独立事件循环（loop-per-thread），可真正利用多核处理高CPU负载的I/O密集型任务，如实时数据流、WebSocket网关等。但共享状态需谨慎：内置容器有内部同步，关键操作仍需threading.Lock；推荐使用分片缓存实现“所有权”模型，避免锁竞争。同时，asyncio.Lock与threading.Lock不可混用，跨线程调度应通过run_co]]></description><category></category></item><item><title><![CDATA[Python Async Generator 正确退出指南：客户端断开后，Socket、DB Cursor、Subscription 和 Task 到底谁来释放？]]></title><link>https://blog.csdn.net/windowshht/article/details/165748413</link><guid>https://blog.csdn.net/windowshht/article/details/165748413</guid><author>windowshht</author><pubDate>Thu, 17 Sep 2026 15:42:20 +0800</pubDate><description><![CDATA[在Python异步生成器中，客户端断开后资源释放依赖明确的生命周期管理。async def生成器需通过try/finally确保aclose()触发时清理Socket、DB Cursor、Subscription等资源。aclose()注入GeneratorExit并执行finally块，实现异步清理。避免依赖break自动关闭，应使用contextlib.aclosing()保证确定性释放，遵循“谁创建，谁负责”的原则，确保生产环境资源安全回收。]]></description><category></category></item><item><title><![CDATA[别再用 global / thread-local 传 request_id：彻底理解 Python ContextVar 与 Async Web Tracing]]></title><link>https://blog.csdn.net/windowshht/article/details/165748122</link><guid>https://blog.csdn.net/windowshht/article/details/165748122</guid><author>windowshht</author><pubDate>Thu, 17 Sep 2026 15:35:39 +0800</pubDate><description><![CDATA[在异步 Python Web 开发中，global 和 threading.local() 无法正确隔离请求上下文，因多个协程共享全局状态或线程。ContextVar 通过绑定当前执行上下文（Context），实现逻辑层面的隔离，确保每个 Task 拥有独立的 request_id 等上下文数据。其核心机制是：创建任务时自动复制当前 Context，修改仅影响本地上下文，避免跨请求污染。相比显式传参，ContextVar 更简洁且适用于异步追踪、日志、用户身份等场景，是现代异步应用管理上下文状态的推荐方案。]]></description><category></category></item><item><title><![CDATA[Backpressure 才是高级 Async 的分水岭：从无限队列到生产级 asyncio 流量治理]]></title><link>https://blog.csdn.net/windowshht/article/details/165544089</link><guid>https://blog.csdn.net/windowshht/article/details/165544089</guid><author>windowshht</author><pubDate>Wed, 16 Sep 2026 06:01:22 +0800</pubDate><description><![CDATA[当系统生产速度持续高于处理能力时，无限队列会导致内存爆炸与延迟失控。真正的异步高级实践在于引入背压（Backpressure）：通过有界队列（asyncio.Queue(maxsize)）和准入控制（如 Semaphore），使过载信号反向传播，主动拒绝或丢弃流量，避免系统雪崩。合理设置队列大小（≈允许排队时间 × 消费速率）并结合超时机制，才能实现生产级流量治理，从“能跑”迈向“稳得住”。]]></description><category></category></item></channel></rss>