MutableSharedFlow Internals

·
KOTLIN
SharedFlow란 ?`SharedFlow`는 이름 그대로 여러 구독자가 하나의 데이터 스트림을 공유할 수 있도록 설계된 `Flow`로, 방출된 값을 모든 구독자에게 전달하는(브로드 캐스팅) 방식으로 동작한다. 즉, 하나의 데이터 흐름을 여러 코루틴이 동시에 관찰할 수 있도록 설계된 Hot Flow다.SharedFlow의 특징`collect` 함수를 호출한 코루틴이 없어도 동작하며 명시적으로 종료시키지 않는 한 절대로 완료되지 않는다.구독자는 기본적으로 `collect` 함수가 호출된 이후에 방출된 값을 수집한다.`collect` 함수를 여러번 호출해도 하나의 데이터 스트림이 유지된다.이런 특징을 가진 SharedFlow의 동작 방식을 시간의 흐름에 따라 시각적으로 표현하면 다음과 같다.0이 방출되는..