Rust
Фьючерсы и Асинхронный ввод-вывод
Поиск…
Вступление
futures-rs - это библиотека, которая реализует фьючерсы и потоки нулевой стоимости в Rust.
Основными концепциями фьючерсного ящика являются Future and Stream .
Создание будущего с помощью функции onehot
Есть некоторые общие Future
реализации признака в фьючерсной обрешетке. Один из них реализован в модуле futures::sync::oneshot
и доступен через функцию futures::oneshot
:
extern crate futures;
use std::thread;
use futures::Future;
fn expensive_computation() -> u32 {
// ...
200
}
fn main() {
// The oneshot function returns a tuple of a Sender and a Receiver.
let (tx, rx) = futures::oneshot();
thread::spawn(move || {
// The complete method resolves a values.
tx.complete(expensive_computation());
});
// The map method applies a function to a value, when it is resolved.
let rx = rx.map(|x| {
println!("{}", x);
});
// The wait method blocks current thread until the value is resolved.
rx.wait().unwrap();
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow