12 个版本 (6 个稳定版)
使用旧的 Rust 2015
3.0.0 | 2023 年 1 月 25 日 |
---|---|
2.1.0 | 2018 年 2 月 2 日 |
2.0.1 | 2018 年 1 月 7 日 |
2.0.0 | 2017 年 6 月 6 日 |
0.1.3 | 2015 年 10 月 11 日 |
#473 in 并发
每月 855 次下载
用于 14 个 Crates(10 个直接使用)
335KB
4.5K SLoC
context-rs
本项目提供了一个简单的接口来访问著名的 Boost.Context 库,因此提供了构建更高层次抽象的构建块,如协程、协作线程(用户空间线程)或 C++ 中 C# 关键字 yield 的等价物。
用法
要使用 context
,首先将以下内容添加到您的 Cargo.toml
[dependencies]
context = "3.0"
然后将其添加到您的源文件中
extern crate context;
性能
性能严重依赖于架构甚至操作系统。上下文切换本身通常与常规函数调用一样快,因此可以将其视为一种。
要亲自查看,请运行 cargo bench resume
。然后,您可以比较 resume
基准测试(使用 Context::resume()
)的结果与 resume_reference_perf
(使用常规函数调用)的结果。
平台
架构 | Linux (UNIX) | Windows | MacOS X | iOS |
---|---|---|---|---|
i386 | SYSV (ELF) | MS (PE) | SYSV (MACH-O) | - |
x86_64 | SYSV, X32 (ELF) | MS (PE) | SYSV (MACH-O) | - |
arm (aarch32) | AAPCS (ELF) | AAPCS (PE) | - | AAPCS (MACH-O) |
arm (aarch64) | AAPCS (ELF) | - | - | AAPCS (MACH-O) |
mips1 | O32 (ELF) | - | - | - |
ppc32 | SYSV (ELF), XCOFF | - | SYSV (MACH-O) | - |
ppc64 | SYSV (ELF), XCOFF | - | SYSV (MACH-O) | - |
格式:ABI (二进制格式)
。来源: Boost.Context
依赖项
~0.4–395KB