본문 바로가기
반응형

코루틴
반응형
3

[Coroutine] 코루틴 빌더 간단 정리 runBlocking -> 코루틴을 생성하는 코루틴 빌더 runBlocking으로 감싸진 코드는 수행이 끝날 때까지 해당 쓰레드가 Blocking된다. (main쓰레드는 아니다!) 비동기로 동작하는 것이 아니라서 자주 쓰이진 않는다. 꼭 사용해야 하는 경우 라이브러리 또는 프레임워크에서 코루틴을 지원하지 않을 때 launch -> 쓰레드 차단 없이 새 코루틴을 생성하고 결과를 job이라는 객체로 반환, 비동기로 동작한다. job은 lauch 내 상태를 확인하거나 시작 취소 시킬 수 있다 Ex. job.start(), job.cancel()을 통해 해당 비동기 로직을 제어할 수 있다. lauch는 동작을 뒤로 미룰 수 있다. launch(start=CoroutineStart.LAZY) { } -> 실행하는.. 2023. 1. 12.
[Coroutine] Coroutine Cancellation And Timeout 지난번 장에서는 코루틴은 Builder로 생성해보는 것까지 진행하였다. 이번장에서는 코루틴 종료하는 2가지 방법 1) Cacellation 2) Timeout 에 대해 정리해보고자 한다. Cacellation 즉 코루틴이 종료 되기 위해서는 다음과 같은 세가지 조건을 만족해야 한다. 코루틴이 취소 되기 위해서는 다음과 같이 협조적이어야 한다. 코루틴 코드가 cancellable 해야 한다 suspend 함수는 취소 가능하다 이에 다음과 같은 예시를 코드로 작성해보고 테스트 해보자. join 객체의 cacel 함수 호출 join 객체의 cacel 함수 호출, But suspend 함수가 없다면? suspend 함수가 아닌 상태체크로 Cancel finally로 코루틴 종료 NonCancellable로 종.. 2022. 8. 29.
[Coroutine] CoroutineBasic 인프런에 코루틴을 검색해보니 다음과 같은 강좌가 있어 공부겸해서 블로그에 정리해보려고 한다. https://www.youtube.com/c/%EC%83%88%EC%B0%A8%EC%9B%90 새차원 새차원의 코틀린 강좌 입니다. http://blog.naver.com/cenodim www.youtube.com 1. 코루틴 (Co+ routine) 으로 루틴의 일종이다. (안드로이드 앱 개발은 kotlin으로 진행되는데 안드로이드 앱 쓰레드 개념을 보면 UI Thread가 메인 쓰레드이며 이 쓰레드 외에는 UI를 제어 할 수 없다. UI Thread 외 다른 기능이 동시에 필요하다면 AsynTask를 이용하거나(Deprecated 된 것으로 알고 있음) Sub Thread 또는 Handler를 활용하여 이 .. 2022. 8. 23.