#thread #channel #atomic

skipchannel

skipchannels 允许线程之间进行通信,但总是跳到发送的最后一个值

3 个稳定版本

使用旧的 Rust 2015

2.0.1 2020年7月22日
2.0.0 2018年9月18日
1.0.0 2018年9月8日

#551并发

每月 下载 24

BSD-3-Clause

9KB
180

此 crate 允许您创建 skipchannel 并使用它来在线程之间发送值。当您从 skipchannel 读取时,您将始终只得到最后一个发送的值,即通道跳过所有中间值。(skipchannel 的想法来自Concurrent Haskell 论文。)

以下是一个示例

extern crate skipchannel;

use skipchannel::skipchannel;

let (sender, receiver) = skipchannel();
let thread = std::thread::spawn(move || {
  std::thread::sleep(std::time::Duration::new(0, 100_000_000));
  receiver.recv()
});
sender.send(1);
sender.send(2);
assert_eq!(thread.join().unwrap(), Some(2));

无运行时依赖