일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코드포스
- livedata
- Coroutine
- Compose
- Gradle
- Coroutines
- Rxjava
- Hilt
- architecture
- androidStudio
- 암호학
- activity
- 쿠링
- textfield
- 백준
- GitHub
- ProGuard
- android
- 프로그래머스
- Codeforces
- boj
- pandas
- 코루틴
- Python
- TEST
- Kotlin
- AWS
- MiTweet
- relay
- MyVoca
- Today
- Total
목록Coroutines (3)
이동식 저장소
Job 코루틴에서 백그라운드 작업을 나타내는 인터페이스이다. 인터페이스이긴 하지만 동명의 함수로 Job 객체를 만들 수 있다. interface Job : CoroutineContext.Element public fun Job(parent: Job? = null): CompletableJob = ... Job은 부모-자식 관계로 정렬될 수 있다. 부모 Job이 종료되면 자식 Job도 재귀적으로 모두 종료되며, 자식 Job에서 exception이 발생하면 그 Job의 부모도 즉시 종료되고, 부모의 모든 자식이 재귀적으로 종료된다. 부모의 cancel과 다르게 자식의 failure는 부모 쪽으로 전파되지는 않으며, 자신의 부모에만 영향을 미친다. Job 객체를 얻는 방법은 크게 두 가지이다. 위에서처럼 ``..

Kotlin Coroutines에서 Dispatcher는 코루틴이 실행되는 스레드를 결정한다. 특정한 스레드를 지정할 수도 있고, thread pool에 넘겨줄 수도 있고, 아예 정하지 않을 수도 있다. ``launch``, ``async``, ``withContext`` 등의 모든 코루틴 빌드 함수는 ``CoroutineContext`` 타입의 매개변수를 받는다. 따라서 필요하다면 dispatcher를 매개변수로 넘겨줄 수 있다. launch(Dispatchers.Default) { // do something } 이 글에서는 Kotlin에서 사용할 수 있는 dispatcher에 대해 자세히 알아보겠다. Dispatchers.Main 메인 스레드, 즉 UI 스레드를 의미하는 dispatcher이다. J..
비동기 코드는 본질적으로 어렵다. 제대로 공부하지 않은 비동기 코드는 더 어렵다. 지난 몇 일간 코루틴 ``ViewModel`` 코드를 테스트하다 아주 열불이 나서..;; 이참에 제대로 다시 공부해 보자. ``suspend`` 함수의 실행 순서 ``suspend`` 함수도 일반 함수처럼 순차적으로 실행된다. suspend fun function1() { println("fun 1") } suspend fun function2() { println("fun 2") } fun main() = runBlocking { function1() function3() } fun 1 fun 2 일반 함수를 섞어도 똑같다. suspend fun function1() { println("fun 1") } suspend f..