- 博客(3)
- 收藏
- 关注
原创 Rust标准库学习-Send和Sync
并发是一个语言及其标准库无法回避的问题,常见的编程语言,到讨论并发之前,都是非常简单易上手的,(当然这点rust有些例外,rust的所有权、引用、生命周期一般是更早的卡点),并发平等的压制着所有语言,让Bug开始出现在初学者的代码中。人也只有一颗脑袋,并发的复杂性并不出人意料。并发的议题很多,这里分享并发相关的两个频繁出现在标准库中的特征,Send和Sync。Send和Sync在标准库中的位置是std::marker。
2024-01-26 19:08:15
738
1
原创 Rust标准库学习-Any
Any是标准库的一个trait特征,用于模拟/模仿动态类型。Any提供的行为只有type_id方法,可以说几乎是一种空实现。所有的rust类型都默认实现了Any这里T显式约束了?Sized,表明既包括编译时的定长类型,也有运行时才能确定大小的DST类型(dynamically sized types)
2024-01-24 14:22:55
1030
1
原创 Rust标准库学习-Cell
rust通过两种方式保证对象T的内存安全性:1. 允许存在多个不可变的引用 &T 进行访问2. 只允许一个可变的引用 &mut T 进行访问并且1和2不能同时使用,要么使用多个不可变引用,要么只使用一个可变引用。**所有者本身既可以是可变引用,也可以是不可变引用。举个例子编译器会报错,因为不可变引用im_ref在使用过程中进行了可变引用的访问(vec自身);这个在其他语言来看非常不可理喻,在rust中是安全性的基石。虽然使用上障碍非常大,但是给予了引用强而可靠的安全性,即&T拿到的数据始终不变。
2024-01-16 16:04:11
773
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅