web-dev-qa-db-ja.com

現在のスレッドをスリープ状態にするにはどうすればよいですか?

古い情報がたくさんあるので、眠る方法を見つけるのは本当に難しいです。これに似たものをお願いしますJavaコード:

Thread.sleep(4000);
30
Tiago

回答を更新しました

これは、現在のRustバージョンの更新されたコードです。

use std::time::Duration;
use std::thread::sleep;

fn main() {
    sleep(Duration::from_millis(2));
}

RustプレイURL: http://is.Gd/U7Oyip

1.0より前の古い回答

プルリクエストによると https://github.com/Rust-lang/Rust/pull/233 古いstd::old_io::timer::sleepを置き換える機能は新しいstd::thread::sleepです。

GitHubのプルリクエストの説明:

この関数はstd :: old_io :: timerの現在の置き換えであり、間もなく廃止される予定です。この機能は不安定で、RFCがなく、長期間存在しないため、独自の機能ゲートがあります。

コード例:

#![feature(std_misc, thread_sleep)]

use std::time::Duration;
use std::thread::sleep;

fn main() {
    sleep(Duration::milliseconds(2));
}

これは sleepDuration を使用します。これらは現在thread_sleepstd_miscの機能ゲートの背後にあります。それぞれ。

11
Tiago

Rust 1.4以降

Duration および sleep が返され、安定しています!

_use std::time::Duration;
use std::thread;

fn main() {
    thread::sleep(Duration::from_millis(4000))
}
_

また、Duration::from_secs(4)を使用することもできます。

以下の1.0のソリューションは、セマンティックバージョニングの性質上、必要に応じて引き続き機能します。

Rust 1.0以降

持続時間が1.0に間に合うように安定化されなかったため、町に新しい関数があります- _thread::sleep_ms_

_use std::thread;

fn main() {
    thread::sleep_ms(4000);
}
_
31
Shepmaster