Coroutine 동기화 문제 아래의 코드는 100개의 Coroutine을 만들고 각 Coroutine은 coutner를 1씩 증가하는 작업을 1000번 작업한다. 하지만 결과를 확인하면 우리의 예상대로 나오지 않는다. 그 이유는 Coroutine의 Dispatcher는 내부적으로 Thread Pool을 통해 Multi Thread 환경에서 작동한다. 즉 동기화 작업을 처리하지 않았기 때문에 오류가 발행한다. Dispatchers.Default는 JVM에 설정된 만큼 Thread Pool을 갖습니다. 보통 CPU 수와 같으며 최소 2개를 갖습니다. import kotlinx.coroutines.* import kotlin.system.measureTimeMillis suspend fun massiveRu..
Coroutine Coroutine은 동기/비동기를 효율적으로 프로그래밍하기 위한 하나의 동시성 프로그래밍 설계 개념입니다. Kotlin뿐만 아니라 다른 언어에도 존재하는 개념이고 오래된 개념입니다. Android에서 Coroutined은 비동기적으로 실행되는 코드를 간결하게 작성할 수 있고, Thread보다 성능이 좋으며, Jetpack에서 많은 기능을 지원하는 장점이 있습니다. Thread vs Coroutine Thread는 고유한 Stack가 할당되며 동시성을 보장하기 위해 OS가 스케쥴링을 하여 적합한 Thread를 실행하고 Context Switching으로 인한 오버헤드가 발생하고 중지된 Thread는 OS의 선택을 받기 위해 기다립니다(Blocking한다고 표현함). Coroutine은 L..
- Total
- Today
- Yesterday
- 보이스카우트 규칙
- 클린 코드
- Coroutine
- commit
- ViewModelStoreOwner
- DSL
- 연산자
- null
- clean code
- Kotlin
- git
- DART
- CancellationException
- ViewModelProvider
- ConcatAdapter.Config
- Flowable
- Android
- Widget
- 클린코드
- rxjava
- gradle
- Flutter
- 함수
- isActive
- observable
- Exception
- viewmodel
- 코루틴
- TDD
- ConcatAdapter
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
