mpsc lifecycle

송신자가 모두 사라져야 수신 반복이 끝난다

tx.clone()으로 생산자는 늘릴 수 있지만, rx는 하나입니다. 각 메시지는 소유권이 이동하고, 모든 송신 단말이 닫히면 반복이 종료됩니다.

여러 생산자

tx1

첫 번째 스레드

hi, from, the, thread를 보냅니다.

tx

두 번째 스레드

more, messages, for, you를 보냅니다.

rx

단일 소비자

도착한 순서대로 값을 꺼내며 시스템 스케줄링에 따라 순서는 달라질 수 있습니다.

값과 단말의 수명

tx.clone()

송신 핸들을 복제해 같은 채널로 보내는 생산자를 추가합니다.

send(val)

String의 소유권이 채널을 지나 수신자 쪽으로 이동합니다.

for received in rx

값이 오면 반복 본문이 실행되고, 값이 없으면 도착을 기다립니다.

모든 송신자 drop

남은 송신 단말이 없으면 채널이 닫혀 수신 반복도 끝납니다.

핵심 정리

mpsc는 생산자 확장은 쉽게 만들고, 소비 지점은 하나로 모읍니다. 그래서 작업 결과를 한 스레드에서 합치거나 로그를 한 수신 루프에서 처리할 때 구조가 단순해집니다.