Rust · channel

send 이후 소유권 이동 타임라인

값을 채널로 보내면 송신 스레드는 더 이상 그 값을 사용할 수 없고, 수신자가 새 소유자가 됩니다.

채널 이동 단계

mpsc

producer thread

메시지 값을 생성하고 소유합니다.

tx.send(val)

값을 채널 안으로 이동시킵니다.

val invalid

보낸 뒤 sender 쪽 변수는 사용할 수 없습니다.

channel buffer

수신 전까지 메시지를 보관합니다.

receiver

recv가 값을 꺼내 새 소유권을 얻습니다.

create val send moves sender invalid recv new owner

정리

Rust 채널은 데이터를 복사해서 공유하는 것이 아니라 스레드 사이 소유권 이동을 타입 시스템으로 강제합니다.