Message Passing
안전한 동시성을 보장하기 위한 접근법, 스레드들이 서로 데이터를 담은 메시지를 보내서 통신하도록 한다.
Example
mpsc: multi producer, single consumertx를.clone()을 통해서 복제 가능
tx: transmitter,rx: receiver
use std::sync::mpsc;
use std::thread;
fn main() {
let (tx, rx) = mpsc::channel();
}
send
- send 메서드로 메시지를 전송
- Result 타입을 반환 (전송에 실패하면 Err를 반환)
tx.send(message).unwrap();
receive
recv: receive, 스레드를 멈추고 기다림try_recv: 대기 없이 즉시 Result를 반환