Coroutines 15

[Kotlin] Coroutines - Coroutine builder

#1 Coroutine builder kotlinx-coroutines-coreCore primitives to work with coroutines. Coroutine builder functions: Coroutine dispatchers implementing CoroutineDispatcher: More context elements: Synchronization primitives for coroutines: Top-level suspending functions: NameDescriptiondelayNon-blockingkotlinlang.orgrunBlocking을 제외한 코루틴 빌더는 CoroutinesScope의 확장 함수(Extension functions)다. CoroutineScop..

[Kotlin] Coroutines - CoroutineScope, CoroutineContext

본 게시글의 Coroutine 개념은 Android 내에서 사용되는 것을 전제로 작성되었다. #1 CoroutineScope...import kotlinx.coroutines.*class MainActivity: AppCompatActivity() {    ...    val btnDownloadSampleData = findViewById(R.id.btnDownloadSampleData)        btnDownloadSampleData.setOnClickListener {        // 코루틴의 영역        CoroutineScope(Dispatchers.IO).launch {            sampleFunction()        }    }        ...}코루틴은 기본적으로..

[Kotlin] Coroutines - Suspend vs Block

#1 이전 글 [Kotlin] Coroutines - 동기 코드, 비동기 코드#1 동기 코드 vs 비동기 코드 #1-1 구분하기 코루틴을 제대로 사용하기 위해선 먼저, '동기 코드'와 '비동기 코드(= 코루틴 코드)'를 명확하게 구분할 줄 알아야 한다. 둘을 구분하는 기준은 쉽게 말kenel.tistory.com이전 글에서 다룬 Suspend라는 개념은, "스레드를 Block한다"라고 말할 때의 Block과 비슷하면서도 다른 개념이다. 둘의 공통점과 차이점을 짚어본다. #2 Suspend vs Block#2-1 공통점둘 다 스레드의 동작을 멈춘다. 하지만, 이 '멈춤'이라는 것은 2가지 양상을 띄며, 서로 구분된다. #2-2 차이점비유를 통해 설명하겠다.어떤 재미있는 동영상이 재생되고 있는 상황이다.1...

[Kotlin] Coroutines - 동기 코드, 비동기 코드

본 게시글의 #1 ~ #3은 동기성 및 비동기성을 설명하기 위해서 스레드의 개념에 대해 고의적이고 논리적인 비약을 사용했다. 이 글을 보는 분은 꼭 #4의 주의할 점까지 봐주셔야 한다. #1 동기 코드 vs 비동기 코드#1-1 구분하기코루틴을 제대로 사용하기 위해선 먼저, '동기 코드'와 '비동기 코드(= 코루틴 코드)'를 명확하게 구분할 줄 알아야 한다. 둘을 구분하는 기준은 쉽게 말하자면 작업이 순차적으로 실행되는 지의 여부다. 순차적이라는 것은, 이전 작업이 완료될 때까지 다음 작업이 실행되지 않음을 의미한다. 비동기 코드는 동기 코드가 아닌 코드다. #1-2 비동기 코드의 예시import kotlinx.coroutines.CoroutineScopeimport kotlinx.coroutines.Di..

[Kotlin] Coroutines - 기초

본 게시글의 Coroutine 개념은 Android 내에서 사용되는 것을 전제로 작성되었다. #1 다중 스레드 구현#1-1 코루틴 Android의 Kotlin 코루틴  |  Android DevelopersAndroid의 Kotlin 코루틴 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동developer.android.com컴퓨터 과학에서의 멀티태스킹(Multitasking)에는 크게 2가지 종류이 있는데, 첫 번째 종류는 운영체제가 알아서 프로세스들을 전환하는 방법이고, 두 번째 종류는 프로세스 자체에서 스스로의 동작을 제어하는 방법이다. 전자는 운영체제의 스케쥴러가 수행한다. 개발..