태스크 이동
멀티스레드 런타임의 태스크는 다른 워커로 옮겨질 수 있으므로 Send 경계가 중요합니다.
Tokio 태스크, 공유 상태, 채널을 고를 때도 Send와
Sync 조건이 어떤 값이 스레드 사이를 건널 수 있는지
알려줍니다.
멀티스레드 런타임의 태스크는 다른 워커로 옮겨질 수 있으므로 Send 경계가 중요합니다.
스레드나 태스크가 같은 상태를 잡아야 하면
Arc<T>를 사용합니다.
짧은 락은 std, await를 넘는 락은 tokio Mutex로 분리해 판단합니다.
상태 공유보다 메시지 전달이 단순하면 채널로 backpressure를 둡니다.
Arc<Mutex<T>>로 소유권과 가변 접근을
함께 표현합니다.
tokio::sync::mpsc는 태스크 사이 처리량을
조절합니다.
tracing span은 태스크가 섞여도 요청 단위 흐름을
남깁니다.
axum 핸들러는 async 함수로 동작하며 공유 상태와 채널을 조합합니다.
동시성 기본기는 비동기 서버에서도 그대로 이어집니다. 차이는 스레드보다 태스크 단위로 사고하되, 타입이 허용하는 이동과 공유 경계를 계속 확인하는 데 있습니다.