일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- boj
- Rxjava
- Codeforces
- 쿠링
- Compose
- Coroutines
- Python
- androidStudio
- AWS
- android
- Kotlin
- 백준
- TEST
- Hilt
- textfield
- 암호학
- MyVoca
- 프로그래머스
- Gradle
- relay
- livedata
- 코루틴
- Coroutine
- MiTweet
- architecture
- activity
- 코드포스
- pandas
- ProGuard
- GitHub
- 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..