rust sleep

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.