본문 바로가기

Coroutine2

코루틴 알아보기 1-1 전 글에서 코루틴이 무엇인지 이론적으로만 알아보았는데 이번 글에서는 간단한 예제를 같이 보면서 이해하는 시간을 가져보도록 하겠습니다. 바로 예제를 보면서 설명하겠습니다. Log.d(TAG, "onCreate: start") GlobalScope.launch { delay(300L) Log.d(TAG, "onCreate: coroutine: sleep") } Log.d(TAG, "onCreate: End") 위 코드에서 GlobalScope.launch는 코루틴을 시작하겠다는 의미이고 { } 안에 있는 코드가 비동기적으로 실행된다는 의미입니다. 코루틴을 사용하지 않았다면 start -> sleep -> End 가 순서대로 출력되었겠지만 코루틴을 사용함으로써 메인 쓰레드와 분리되어 start -> End -.. 2024. 2. 7.
Coroutine 이란? 이번 글에서는 비동기 처리할 때 많이 사용하는 Coroutine에 대해서 알아보도록 하겠습니다. Coroutine? 실행의 지연과 재개를 허용함으로써 비선점적 멀티태스킹을 위한 서브 루틴을 일반화한 컴퓨터 프로그램 구성요소입니다. Co(협동) + routine(루틴)의 합성어입니다. 비선점적 멀티태스킹 이란? 비선점형 : 하나의 프로세스가 CPU를 할당받으면 종료되기 전까지 다른 프로세스가 CPU를 강제로 차지할 수 없습니다. 선점형 : 하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 강제로 차지할 수 있습니다. 즉 비선점적 멀티태스킹은 하나의 프로세스가 CPU를 차지할 수 없다는 것을 의미합니다. Coroutine과 쓰레드의 차이점 Thread Thread는 각 작업에 해당하는 메모리 영역인.. 2024. 2. 7.