728x90

2022/07/07 2

코드스피츠 6강) 코루틴

Week6 선점형 멀티태스킹 대부분의 OS 는 선점형 멀티태스킹 방식을 취하고 있음. 예를 들면 A 프로세스나 스레드를 스케쥴링 하다가도, B 프로스세스나 스케쥴러가 좀 더 높은 우선순위로 실행되야 한다면, OS 가 A 프로세스를 중단시키고, B 프로세스를 실행시킬 수 있음 비선점형 멀티태스킹 OS 가 강제로 현재 실행중인 프로그램을 멈출 수 없음. 로드된 프로그램이 종료되어야 다른 프로그램이 실행됨. 보통 경량스레드들이 이에 속함. 보통 하나의 로직이 죽으면 전부 다 죽음. 비선점형 멀티태스킹의 단점 단점은 진짜 동시성이 아니다. 하나의 작업을 여러개의 쓰레드나 프로세서로 분산시킬 수 없음. -> 각 작업을 길게 쪼개면 각각 조각을 스레드로 분산시킬 수는 있음. 위의 사진 처럼 하나의 Job 을 잘게 ..

Kotlin 2022.07.07

코루틴 빌더 예외처리

Coroutine Exception Handling Coroutine 의 Exception Handling 은 Coroutine 을 제대로 공부하지 않으면 사용하기 힘들다. 왜냐하면 사용하는 Coroutine Builder 마다 Exception 을 전파하는 방식이 다르기 때문이다. Coroutine Builder 간의 차이 launch 의 경우 Exception 이 발생하게 되면 즉시 Exception 을 위로 전파하는 성질이 있습니다. async 의 경우 Exception 이 발생해도 즉시 전파하지않고, await() 이 실행될때 전파합니다. 사실 이런 부분은 코드로 봐야 조금 더 직관적이므로 코드로 설명하겠습니다. launch launch 의 경우 위에서 설명했듯이 Exception 을 그 즉시 상..

Kotlin 2022.07.07
728x90