<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lexxn1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Lexxn1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Lexxn1]]></copyright><item><title><![CDATA[异步错误处理最佳实践：让错误在异步世界优雅落地]]></title><link>https://blog.youkuaiyun.com/Lexxn1/article/details/154124829</link><guid>https://blog.youkuaiyun.com/Lexxn1/article/details/154124829</guid><author>Lexxn1</author><pubDate>Thu, 30 Oct 2025 13:52:30 +0800</pubDate><description><![CDATA[本文探讨了异步编程中的错误处理策略，提出了分层错误模型（Leaf/Domain/Application/Cross-Service），并给出Rust异步错误处理的完整解决方案。核心内容包括：通过FallibleFuture实现永不panic的Future；结合指数退避和取消安全机制构建可重试Future；使用事务包装器实现补偿式Pipeline；设计Saga模式处理分布式事务。文章对比了anyhow、thiserror和eyre在不同场景下的适用性，最终提供了一套融合错误传播、重试机制和分布式事务的生产级错]]></description><category></category></item><item><title><![CDATA[双端迭代器（DoubleEndedIterator）：从两端向中间逼近的艺术]]></title><link>https://blog.youkuaiyun.com/Lexxn1/article/details/154124770</link><guid>https://blog.youkuaiyun.com/Lexxn1/article/details/154124770</guid><author>Lexxn1</author><pubDate>Thu, 30 Oct 2025 13:51:20 +0800</pubDate><description><![CDATA[摘要：本文深入解析Rust双端迭代器的实现原理与实战应用。通过剖析标准库中的Range和Slice迭代器实现，揭示了恒定时间操作的底层奥秘。重点展示了双端迭代器在回文检测、零拷贝反转(rev)等场景的实践，并拓展到并行计算领域（Rayon），实现高效的双端并行reduce。文章提供生产级代码模板，包括无分配的DequeSlice和恒定时间的组合子实现，为需要双向遍历的算法提供高效解决方案。]]></description><category></category></item><item><title><![CDATA[Waker与唤醒机制：从系统I/O到异步调度的完整链路]]></title><link>https://blog.youkuaiyun.com/Lexxn1/article/details/154121306</link><guid>https://blog.youkuaiyun.com/Lexxn1/article/details/154121306</guid><author>Lexxn1</author><pubDate>Thu, 30 Oct 2025 11:57:53 +0800</pubDate><description><![CDATA[Rust异步I/O与Waker机制解析 本文深入探讨Rust异步编程中的Waker机制如何与系统I/O事件协作。通过对比传统阻塞I/O与异步I/O的性能差异，揭示Waker在事件驱动架构中的核心作用。文章详细分析了epoll/kqueue等系统调用如何捕获I/O事件，并通过IoRegistry将文件描述符映射到对应的Waker对象。实战部分展示了如何构建异步TCP服务器，其中Waker在连接就绪时唤醒挂起的异步任务。这种机制使少量线程即可处理大量并发连接，是Rust高性能异步框架的关键所在。]]></description><category></category></item><item><title><![CDATA[async/await语法糖的展开原理：揭开Rust异步编程的神秘面纱]]></title><link>https://blog.youkuaiyun.com/Lexxn1/article/details/154121127</link><guid>https://blog.youkuaiyun.com/Lexxn1/article/details/154121127</guid><author>Lexxn1</author><pubDate>Thu, 30 Oct 2025 11:52:16 +0800</pubDate><description><![CDATA[本文深入解析Rust中async/await的底层实现原理，揭示编译器如何将异步代码转换为状态机。首先通过手动实现Future的痛点对比，展示async/await语法带来的简洁性优势。然后重点剖析编译器生成状态机的过程，包括其基本结构与关键要素，并提供了简化版的状态机代码实现。文章还探讨了Pin机制如何确保内存安全，分析了Future的执行流程。最后讨论了编译器优化策略，帮助开发者理解异步编程的底层机制，写出更高效的异步代码。]]></description><category></category></item><item><title><![CDATA[Pin与Unpin：Rust异步编程的内存安全基石]]></title><link>https://blog.youkuaiyun.com/Lexxn1/article/details/154121045</link><guid>https://blog.youkuaiyun.com/Lexxn1/article/details/154121045</guid><author>Lexxn1</author><pubDate>Thu, 30 Oct 2025 11:50:22 +0800</pubDate><description><![CDATA[Rust异步编程中的Pin和Unpin解析 本文深入探讨Rust异步编程中的核心概念Pin和Unpin。文章首先展示了自引用结构体在移动时产生的悬垂指针问题，解释了为什么异步编程特别需要解决这个问题。然后详细介绍了Pin的设计哲学，它通过类型系统确保被Pin的值不能移动，并通过Unpin trait区分哪些类型可以安全移动。 文章提供了Pin的基本API用法，对比了Unpin和!Unpin类型的差异，并通过一个手动实现的自引用Future示例，展示了如何安全构建自引用结构。最后还实现了一个完整的异步Time]]></description><category></category></item></channel></rss>