4 个版本 (重大更改)
使用旧的 Rust 2015
0.4.0 | 2018 年 6 月 13 日 |
---|---|
0.3.0 | 2018 年 5 月 16 日 |
0.2.0 | 2018 年 5 月 16 日 |
0.1.0 | 2018 年 5 月 15 日 |
在 #threads 中排名 12
5KB
61 代码行
thread_spawn
编写启动线程并隐式返回 JoinHandles 的 Rust 函数
#![feature(plugin, proc_macro)]
extern crate thread_spawn;
use thread_spawn::thread_spawn;
#[thread_spawn]
fn foo(a: u8, b: u8, (c, _): (u8, u8)) -> bool {
assert!(a + b + c == 5);
5 - c == b
}
fn main() {
let mut x = 0;
let mut y = 1;
let res = foo(x, y, (4, 0)).join(); // explicit join call
match res {
Ok(res) => println!("result: {:?}", res),
Err(err) => panic!("Thread panicked: {:?}", err),
}
}
优点
- 自动为启动函数命名线程,以便您有更好的错误信息。
- 需要帮助: 使语法 `#[thread_spawn(name("thread {}", arg_or_expression)] 正常工作
- 在概念上反映了
async
关键字。 - 更少的关键字!
许可证
MIT 或 Apache-2.0,任选其一。
依赖关系
~2MB
~47K SLoC