์ฑ๋
๋ฌ์คํธ์ ์ฑ๋์ Sender<T>
์ Receiver<T>
๋ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด ๋์ ์ฑ๋์ ํตํด ์๋ก ์ฐ๊ฒฐ๋์ด ์์ง๋ง, ์ฐ๋ฆฌ๋ ์ฑ๋์ ๋ณผ ์๋ ์๊ณ ์ด ์ ๋๋จ๋ง์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
use std::sync::mpsc; use std::thread; fn main() { let (tx, rx) = mpsc::channel(); tx.send(10).unwrap(); tx.send(20).unwrap(); println!("Received: {:?}", rx.recv()); println!("Received: {:?}", rx.recv()); let tx2 = tx.clone(); tx2.send(30).unwrap(); println!("Received: {:?}", rx.recv()); }
mpsc
๋ โMulti-Produce, Single-Consumerโ๋ฅผ ์๋ฏธํฉ๋๋ค.Sender
์SyncSender
๋Clone
์ ๊ตฌํํ์ง๋ง (์ฆ, ์ฌ๋ฌ๊ฐ์ producer๋ฅผ ๋ง๋ค์ ์์ต๋๋ค)Receiver
๋Clone
์ ๊ตฌํํ์ง ์์ต๋๋ค.send()
์recv()
๋Result
๋ฅผ ๋ฐํํฉ๋๋ค. ๋ง์ผErr
๊ฐ ๋ฐํ๋๋ค๋ฉด, ์๋๋ฐฉ์Sender
๋๋Receiver
๊ฐ ์ญ์ ๋์๊ณ ์ฑ๋์ด ๋ซํ๋ค๋ ๋ป์ ๋๋ค.