
parallel_sync 모듈의 wait 함수는 스레드 또는 태스크가 특정 조건을 기다리는 동안 다른 스레드 또는 태스크가 진행되는 것을 허용하는 데 사용됩니다.
wait 함수는 두 가지 형태로 사용할 수 있습니다.
1. `wait()` : 현재 스레드 또는 태스크가 진행되는 것을 중단하고, 특정 조건을 기다립니다.
2. `wait(timeout)` : 현재 스레드 또는 태스크가 진행되는 것을 중단하고, 특정 조건을 timeout 시간 내에 기다립니다.
wait 함수를 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
rust
use std::sync::mpsc;
use std::thread;
fn main() {
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
tx.send(42).unwrap();
});
println!("Waiting for data...");
let data = rx.recv().unwrap();
println!("Received data: {}", data);
}
위 예제에서 wait 함수는 사용되지 않았지만, recv 함수는 현재 스레드가 진행되는 것을 중단하고, 데이터를 기다립니다.
또한, timeout을 사용하는 예제는 다음과 같습니다.
#hostingforum.kr
rust
use std::sync::mpsc;
use std::thread;
use std::time::Duration;
fn main() {
let (tx, rx) = mpsc::channel();
thread::spawn(move || {
tx.send(42).unwrap();
});
println!("Waiting for data...");
match rx.recv_timeout(Duration::from_secs(1)) {
Ok(data) => println!("Received data: {}", data),
Err(_) => println!("Timeout occurred"),
}
}
위 예제에서 wait 함수는 사용되지 않았지만, recv_timeout 함수는 현재 스레드가 진행되는 것을 중단하고, 데이터를 1초 내에 기다립니다.
wait 함수는 스레드 또는 태스크가 진행되는 것을 중단하고, 특정 조건을 기다리는 데 사용됩니다. 사용법은 위 예제를 참고하세요.
2025-06-25 04:43