rust - ¿Cómo puedo poner el hilo actual a dormir?
sleep (2)
Hay mucha información desactualizada, es muy difícil saber cómo dormir. Me gustaría algo similar a este código de Java:
Thread.sleep(4000);
Rust 1.4+
Duration
y el sleep
han vuelto y están estables!
use std::time::Duration;
use std::thread;
fn main() {
thread::sleep(Duration::from_millis(4000))
}
También puede usar Duration::from_secs(4)
, que podría ser más obvio en este caso.
La solución a continuación para 1.0 continuará funcionando si lo prefiere, debido a la naturaleza del control de versiones semántico.
Rust 1.0+
La duración no se thread::sleep_ms
estable a tiempo para 1.0, por lo que hay una nueva función en la ciudad, thread::sleep_ms
:
use std::thread;
fn main() {
thread::sleep_ms(4000);
}
Respuesta actualizada
Este es el código actualizado para la versión actual de Rust:
use std::time::Duration;
use std::thread::sleep;
fn main() {
sleep(Duration::from_millis(2));
}
URL de reproducción de óxido: http://is.gd/U7Oyip
Antigua respuesta pre-1.0
De acuerdo con la solicitud de extracción https://github.com/rust-lang/rust/pull/23330 la función que reemplazará al antiguo std::old_io::timer::sleep
es el nuevo std::thread::sleep
.
Tire de la descripción de la solicitud en GitHub:
Esta función es el reemplazo actual de std :: old_io :: timer que pronto quedará en desuso. Esta función es inestable y tiene su propia puerta de funciones, ya que aún no tiene un RFC ni ha existido por mucho tiempo.
Ejemplo de código:
#![feature(std_misc, thread_sleep)]
use std::time::Duration;
use std::thread::sleep;
fn main() {
sleep(Duration::milliseconds(2));
}
Esto utiliza la sleep
y la Duration
, que actualmente están detrás de las puertas de thread_sleep
de thread_sleep
y std_misc
, respectivamente.