在 Rust 中同时支持异步和同步代码 (colobu.com)

【简介】

在 Rust 中如何同时支持异步和同步代码?本文提供了详细的解决方案,从基础实现到 maybe_async crate 的使用,帮助你在一个代码库中高效处理这两种模式的转换。无论你是构建高并发系统还是希望代码更灵活,这篇文章都提供了实用的技巧。感兴趣的开发者不容错过!

点击查看原文 >>

@技术头条 2024-09-08 23:37 / 原作者微博:@colobu / 0个评论
要不要再学学下面的文章?
使用 OpenRewrite 优化代码 (www.diguage.com)
本文介绍了如何使用OpenRewrite工具优化Java代码。OpenRewrite可以通过自动化脚本进行代码重构,减少技术债务,提升代码质量。作者详细讲解了如何配置Maven插件,并使用多种重构“处方”,例如排序import语句、升级到Java 21、替换Base64实现,以及迁移到Spring Boot 3.2和JUnit 5。通过这些工具和方法,开发者可以简化代码维护和升级流程。
by @技术头条 2024-08-06 08:04 查看详情
使用Rust捕获和解析网络包 (colobu.com)
这篇文章介绍了如何使用Rust编程语言捕获和解析网络包,以提取TCP时间戳并计算网络延迟。作者利用pcap库捕获网络包,并使用pdu库解析TCP选项中的时间戳信息,结合哈希映射存储五元组信息以计算往返时间。文中提供了代码示例,展示了在Mac系统上实现这一过程的步骤。
by @技术头条 2024-08-06 07:53 查看详情
“测试 Rust 的 I/O 性能” (colobu.com)
这篇文章探讨了在Linux上使用Rust进行文件I/O操作的性能测试。作者通过多种方法对读取大文件进行基准测试,包括使用标准BufReader、Direct I/O、内存映射(Mmap)以及io_uring等技术。结果显示,使用AVX-512指令集的内存映射实现是最快的方法,其读取速度超过8.4 GB/s。文章强调不同技术的性能差异,并提供代码示例供开发者参考。
by @技术头条 2024-08-06 07:51 查看详情
Rust并发编程番外篇: Mutex内部实现 (colobu.com)
Mutex是最常用的一种同步原语,它提供了互斥锁的功能,多线程可以互斥访问共享数据以及通过锁保护临界区。Rust标准库提供了Mutex的实现,接下来我们看看它是怎么实现的。
by @技术头条 2023-11-06 22:56 查看详情
Rust并发编程 - 容器类并发原语 (colobu.com)
Rust 在并发编程方面有一些强大的原语,让你能够写出安全且高效的并发代码。最显著的原语之一是 ownership system,它允许你在没有锁的情况下管理内存访问。此外,Rust 还提供了一些并发编程的工具和标准库,比如线程、线程池、消息通讯(mpsc等)、原子操作等,不过这一章我们不介绍这些工具和库,它们会专门的分章节去讲。这一章我们专门讲一些保证在线程间共享的一些方式和库。

并发原语内容较多,分成两章,这一章介绍Cow、beef::Cow、Box、 Cell、RefCell、OnceCell、LazyCell、LazyLock 和 Rc。 我把它们称之为容器类并发原语,主要基于它们的行为,它们主要是对普通数据进行包装,以便提供其他更丰富的功能。
by @技术头条 2023-10-24 23:56 查看详情
代码变更风险可视化系统建设与实践 (tech.meituan.com)
本文整理自美团技术沙龙第77期《美团亿级流量系统的质量风险防控和稳定性治理实践》。文章第一部分介绍了软件系统风险与变更;第二部分介绍了代码变更风险可视化系统的能力建设;第三部分介绍了整个系统在美团内部实践落地的情况;最后是对未来的规划和展望。希望对大家能有所帮助或启发。
by @技术头条 2023-10-24 23:48 查看详情
低代码,想说爱你不容易 (blog.yuanpei.me)
当我了解了低代码和零代码的差异以后,我突然明白,我需要的其实是零代码,因为我希望那帮业务人员能自己搞定,这样就不用再来烦我,可经历这段时间的“低代码”,我清醒地认识到,这个想法根本不现实。
by @技术头条 2023-07-04 23:24 查看详情
AI 加持的代码编写实战:快速实现 Nginx 配置格式化工具 (soulteary.com)
本篇文章聊聊如何使用 GPT 快速完成一个开源小项目,解决实际的问题,顺手点亮 GitHub 上 Nginx 开源社区的贡献者图标。“Talk is Cheap,Show you the Code。
by @技术头条 2023-07-02 23:45 查看详情
Robust 2.0:支持Android R8的升级版热修复框架 (tech.meituan.com)
2016年,我们对美团Android热更新方案Robust的技术原理做了详细介绍。近几年,Google 推出了新的代码优化混淆工具R8,Android 热修复补丁制作依赖二次构建包和线上包对比,需要对Proguard切换到R8提前进行适配和改造,本文分享 Robust 在适配 R8 以及优化改进中的一些思路和经验,希望能对大家有所帮助或者启发。
by @技术头条 2023-06-24 09:21 查看详情
让 sync.Map 支持泛型 (colobu.com)
渐渐地, Go泛型越来越多应用的Go的标准库中了。一些标准库的类型,比如container/heap、container/list、container/ring、math都是有机会支持泛型的,但是考虑到Go向下兼容的情况,这些包可能不会直接修改,最可能就是新建一些并发的包,或者放在扩展包中。

本篇文章将讲一个相对复杂的例子,也就是对sync.Map的修改,让它支持泛型。
by @技术头条 2023-06-24 09:19 查看详情