我试图在代码中使用Arc,但在阅读文档时,有两个地方定义了Arc:std机箱和alloc机箱。那么,alloc::sync::Arc和std::sync::Arc之间有什么不同呢?
来自alloc
机箱文档:
此库提供用于管理堆分配值的智能指针和集合。
与libcore一样,此库通常不需要直接使用,因为其内容会在
std
机箱中重新导出。然而,使用#![no_std]
属性的板条箱通常不依赖于std,所以他们会使用这个板条箱。
所以std::sync::Arc
和alloc::sync::Arc
之间没有差异。
alloc
还提供Box
、Vec
、String
、collections
模块,以及标准库中基本上需要分配(因此是alloc
(但不需要底层操作系统(文件系统、网络等(的任何内容。如果您想编写仍然可以使用漂亮的标准库数据结构的裸机(非托管(软件,那么alloc
就是您的选择。