코루틴 보단 RX를 선호하는 편이지만 github를 보면 자주 보이는지라
정리해보고자 글을 씁니당
CoroutineScope
코루린 영역 말 그대로 라이프사이클를 제어할 수 있다 . 코투린 시작을 위해서 꼭 필요하다
coroutineScope에서 다른 coroutineScope를 생성할 수 있다.
위와 같은 상황이 벌어지면
부모 자식관계를 형성
CoroutineContext
코루틴 행동의 요소모음집(?) 이다
CoroutineScope(Dispatchers.Default + job)
Dispatchers와 job은 모두 context로 들어간다
디버깅에 유용한 CoroutineName
Exception은 CoroutineExceptionHandler 으로 가능하다
코루틴 내부 코루틴 실행에 경우 오버라이드 되어 수행
즉, 부모 코루틴에 Context는 크게 신경 안씀 ..default라면 모를까
-이러한 경우 부모에서 설정한 job과 자식에서 리턴되는 job Instance는 다름
Job LifeCycle
Active -> Cancel -> Cancelled
Active -> Completing -> Completed
스코프 강제 취소나 스코프 영역 작업이 상황파악 될 수 있도록 State를 확장함수로 두고 사용해도 괜잖은 것 같다..
CoroutineBuilder
- launch 리턴 값 없음
- async 리턴 값 존재, await로 시작 fire!! parallel 수행
-주의해야 할 점은 바로 선언과 동시에 Await 하면
withContext와 다를게 없음..
- withContext parallel 아님 , await 없이 바로 수행
- runBlocking 말 그래도 Blocking (호출된 Thread 사용 -> Main에서 사용 X)
참고
댓글 없음
댓글 쓰기