0.1.0 |
|
---|
#29 in #dropped
16KB
148 代码行
Scoped Threads
轻量级、安全且符合习惯的scoped线程
此软件包提供了一种与 std::thread
相似的scoped替代品,即可以使用非静态数据(如父线程堆栈的引用)的线程。它模仿 std
的线程接口,因此使用此软件包无需学习新知识。尽管如此,仍有一个有意义的区别:删除的 JoinHandle
会连接而不是分离创建的线程,以确保借用数据仍然有效。此外,此软件包不会重新定义与scoped线程无关的类型和函数,例如 thread::park
。
它轻量级,因为它不使用昂贵的线程同步,如 Arc
、互斥锁或通道。
此软件包的API不太可能更改,可以视为稳定,但只有在不稳定功能 thread_spawn_unchecked
稳定后,软件包才会达到1.0版本。
为什么是 scoped_threads
而不是 crossbeam_utils::scope
?
- 您可能不想将scoped线程带来额外的ShardedLocks、CachePadded等。
scope
函数工作得很好,但感觉有点奇怪,并且不够灵活。- 同步原语(如
Arc
和Mutex
)被广泛使用,并带来了显著的开销。
许可证
根据您的选择,受以下任一许可证的许可:
- Apache许可证第2版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何有意提交给您的工作并包含在Apache-2.0许可证定义中的贡献,均应按上述方式双许可,不附加任何额外条款或条件。