본문 바로가기

코루틴5

[🔥 Coroutine] #5 또 예제로 복습하기 (async, launch) ✏️ 예제를 통한 복습 suspend fun getRandNum1() : Int { delay(1000L) return Random.nextInt(0,500) } suspend fun getRandNum2() : Int { delay(1000L) return Random.nextInt(0,500) } fun main() = runBlocking { val time = measureTimeMills{ val one = getRandNum1() val two = getRandNum2() println("${one} + ${two} = ${one + two}") } println(time) } 순차적으로 실행되어 1000L + 1000L = 2초가 걸림 개별적으로 실행되지만, 순차적으로 실행되어서 항상 get.. 2022. 12. 4.
[🔥Coroutine] #4 suspend, Job 간단하게 살펴보기 시작 전 복습 한 마디 코루틴이 쓰이는 모든 곳에는 CoroutineScope가 있습니다 CoroutineScope는 CoroutineContext(코루틴을 처리하기위한 정보)를 가지고 있습니다 suspend 코루틴 내에서만 함수를 호출하지 않고, 코드의 일부를 함수로 분리하려면 suspend 키워드를 사용 suspend가 붙은 함수를 사용하려면 1. 그 함수가 suspend이거나 2. CoroutineBuilder를 통해 코루틴을 만들어야한다 suspend fun showName(){ println("showName") delay(500L) println("My name is Kong") } suspend fun showAge(){ println("showAge") delay(1000L) println.. 2022. 11. 30.
[🔥 Coroutine] #3 예제로 복습하기 안녕하세요 :) 오늘은 예제로 여태까지 1,2장에서 공부한 코루틴에 대해 복습하고자 합니당 다음 포스팅은 Job으로 돌아오겠습니다 🙇🏻‍♀️ CoroutineBuilder 코루틴을 생성하는 함수 1. runBlocking runBlocking내의 코드블록이 수행될 때까지 다른 코드가 수행되지 못하게 Block runBlocking내의 this는 코루틴이 Receiver임을 알 수 있음 Active : 현재 코루틴의 활성화 상태 2. launch 💡 runBlocking과의 차이 : runBlocking은 코드블럭 수행완료까지 다른 블록을 수행하지 못하게 Block, launch는 다른 코드를 함께 수행하게 함 (코드를 큐에 넣어두고 다음 순서를 기다림) ⭐️ 하지만, runBlocking으로 코루틴을 만.. 2022. 11. 12.
[🔥 Coroutine] #2 runBlocking , async 안녕하세요 아주 오랜만입니다 약간의 휴식기를 갖고 왔습니다 :) CoroutineBuilder에 관해선, 이전 포스팅에도 있기 때문에, 간단한 예제를 통해 복습하겠습니다 간단한 예제지만, 코루틴을 처음 접하기 때문에 쉬운 예제부터 시작해 천천히 개념을 명확히 알아보려합니다 🙇🏻‍♀️ 2022.08.30 - [💻 프로그래밍] - [🔥Coroutine] # 1 Coroutine을 배워봅시다 1. runBlocking runBlocking 내의 코드가 완료되기 전까지 mainThread를 종료시키지 않음 -> 동시성이 깨짐 다른 코루틴의 Thread를 중지할 수도 있기 때문에 주로 테스트코드 작성시에 많이 쓰임 테스트 코드를 살펴보겠습니다 @Test fun testRunBlock() = runBlocking .. 2022. 11. 5.