Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📌 Study
🙏 Focus on me
4주차
suspend
Reactor와의 가장 큰 차이점
yield
yield와 코루틴의 동작
yield() 내부 구현
실제로 yield는 Kotlin 코루틴 라이브러리에서 어떻게 구현될까요? Kotlin의 코루틴은 협력적 스케줄링을 지원하는데, 이때 코루틴은 일시 중지 지점을 설정하고, 이를 관리하는 스케줄러가 존재합니다.
suspend 함수 내부에서 yield가 호출되면, 현재 실행 중인 코루틴은 중단되고, 다음 코루틴이 실행될 수 있게 스케줄링됩니다. 이때 중요한 것은 yield가 자발적으로 코루틴을 일시 중지하는 함수라는 점입니다.
yield의 내부적인 흐름
yield의 성능 측면
continuation
주요 역할
continutation의 주요 속성
coroutineScope
coroutineContext
개념 deep dive
Job
runBlocking
주요 특징
Dispatchers
기본 개념
Dispatchers.Default
Dispatchers.IO
Dispatchers.Main
Dispatchers.Unconfined
withContext
기본개념
주요특징
async, launch
launch
async
Job
(작업 핸들링용 객체)Deferred<T>
(결과를 반환하는 객체)launch
Job
객체를 반환.runBlocking
이나GlobalScope
내부에서 사용.async
Deferred<T>
객체를 반환.Deferred
**는 비동기적으로 계산된 결과를 나타내는 객체로, **await()
**를 호출해 결과를 기다림.await()
호출 시점에 전달됨.