MPSC LIFECYCLE

여러 송신자는 하나의 수신 루프로 합쳐집니다

tx.clone()으로 생산자를 늘려도 소비자는 하나입니다. 수신 루프는 메시지를 차례로 처리하다가 모든 송신자가 사라지면 끝납니다.

mpsc multiple producer, single consumer

생산자 스레드들

원본 tx와 복제한 tx1이 각각 값을 생성해 같은 채널로 보냅니다.

send(val)

채널 큐

도착 순서는 스케줄링에 따라 달라질 수 있습니다. 코드는 특정 순서에 기대지 않아야 합니다.

interleaving

수신 반복자

for received in rx는 메시지를 기다리고, 채널이 닫히면 반복을 종료합니다.

all senders dropped
복제는 송신자만 Sender는 clone할 수 있지만 수신자는 하나입니다.
값은 이동 send 후에는 보낸 스레드에서 값을 다시 쓸 수 없습니다.
종료 신호 모든 송신자가 drop되면 수신 루프가 자연스럽게 끝납니다.