网站Logo 盹猫猫的博客
首页
Linux脚本库
Rust
Rust圣经官方文档
开发小工具
websocket测试二维码生成器跨域测试
我的
关于我的开源CSDN
市场哲学​
登录

Rust通道

本文详细介绍了Rust中`mpsc`通道的使用方法、常见陷阱及最佳实践,帮助读者掌握线程间通信的精髓。通道基于“生产者-消费者”模型,由发送者和接收者组成,支持多生产者单消费者的模式。文章通过多个示例展示了如何创建通道、发送和接收数据,并讨论了处理未实现`Copy`特性的类型、多发送者并发发送数据、循环发送与接收数据、同步通道以及发送多种类型的数据等核心特性。此外,还提供了常见陷阱(如接收者无限阻塞和数据发送后未被接收)及其解决方案。总结部分强调了`mpsc`通道在所有权安全、灵活性和易用性方面的优势,是Rust并发编程的基础工具。

2025-08-16
48
0
rust

rbpf虚拟机-打包和代码执行

该篇文章是记录rbpf虚拟机执行文件打包和执行的过程。(学习该虚拟机的目的是为了搞懂solana合约的执行方式,solana使用的rbpf是在该虚拟机上进行扩展)。

2025-06-18
63
0
rust

rbpf虚拟机-阶段整理

该文章是对近期关于rbpf虚拟机文章的整理和回顾。其中包括了验证器、汇编器和反汇编器、op码、即时编译器(JIT)、执行速度测试、打包和代码执行、不同码关系、Call指令相关文章。我认为这些是rbpf虚拟机中比较重要的概念以及技术。

2025-06-13
84
0
rust

rbpf虚拟机-即时编译器(JIT)

本文介绍了基于x86-64架构的eBPF即时编译器(JIT)的实现过程,重点在于理解Solana合约的执行方式。主要内容包括寄存器映射、指令发射、跳转处理和辅助函数调用等。在寄存器映射部分,文章详细描述了如何将eBPF的11个通用寄存器映射到x86-64的寄存器上。指令发射通过`emit_alu32`、`emit_mov`等函数生成算术逻辑单元指令和数据传输指令。此外,文章还展示了如何处理eBPF中的跳转指令以及如何调用辅助函数。关键代码部分则具体演示了寄存器上下文保存、存储中间值、内存缓冲区处理、初始化栈、指令翻译、收尾部分及恢复寄存器的过程。最后,文章总结了JIT是按照x86-64调用标准进行编写,并强调了不同架构下JIT实现的差异性。

2025-06-12
82
0
rust

Rust-引用借用规则

Rust为确保程序在运行时不会出现数据竞争和其他内存安全,在使用引用时有很多规则,我在第一眼看到这些规则时也是有些头大,看了一段时间后才有了一些自己的一些理解。在这里对一些官方的术语和借用规则进行解释和记录。

2025-06-12
63
0
rust