gpt4 book ai didi

rust - Send and Sync 在 libcore 中的作用是什么?

转载 作者:行者123 更新时间:2023-11-29 08:22:08 26 4
gpt4 key购买 nike

SyncSendthread中发挥重要作用来自标准库的 API。但是,它们也包含在 libcore 中.在后者中,有几种实现它们的类型,但我找不到任何“消费者”,即一些将这些特征用作边界的 API。

它们是否有一些编译器知道的特殊行为/含义?请注意,它们是 lang 项目,因此它们在某种程度上是特殊的。 Sync好像是related to statics ,但该链接没有详细介绍。

长话短说:如果SendSync关于线程安全,它们在 libcore 中扮演什么角色?哪里没有多线程的概念?编译器将什么语义分配给它们作为 lang 项?

最佳答案

if Send and Sync are about thread-safety, what role do they fulfill in libcore where there is no notion of multi-threading?

libcore 是关于设置语言的核心概念; SendSync 是该语言的核心:编译器了解它们并了解它们1

libcore使用多线程的事实本身是正交的,与此选择无关。


顺便说一句,请考虑仅仅因为 libcore 没有多线程并不意味着不能在 libcore 之上构建替代标准库有多线程。那毕竟是corestd分离的目的。


1 正如@kennytm 在评论中提到的,Rust 有一个用户可访问的机制,允许根据标记特征是否由所有结构字段实现来自动传播标记特征.这对于 SendSync 来说有点不够,因为它不支持 &(Trait + Send),因此编译器需要特殊的关于这两者的知识,这就是为什么它们是 lang 项。

关于rust - Send and Sync 在 libcore 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43484145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com