728x90
반응형

Android 공부/Coroutine 25

[XX캠퍼스] 01. Kotlin Coroutines & Flow ( 스코프빌더 )

01. [Basic] 1부.코루틴과 동시성 프로그래밍 1-0 처음만나는코루틴 코루틴이란 ? - 실행의 지연과 재개를 허용하면서, 비 선점적 멀티테스킹을 위한 설계 패턴. 코루틴은 비 선점형 멀티태스킹이고, 쓰레드는 선점형 멀티태스킹이다. 이 말은 즉 코루틴은 병행성(Concurrency)을 제공하지만 병렬성(Parallelism)을 제공하지 않는 다는 의미이다. 아니 그럼 병행성과 병렬성의 차이는 무엇인가? 병행성(Concurrency) 동시에 실행되는 것처럼 보이는 것. Logical Level에 속한다. Single Core 사용 물리적으로 병렬이 아닌 순차적으로 동작할 수 있다. 실제로는 Time-sharing으로 CPU를 나눠 사용함으로써 사용자가 Concurrency를 느낄 수 있도록 한다. 병..

코루틴 Flow 참고 블로그 주소

https://kotlinworld.com/175 [Coroutine Flow] 1. Flow란 무엇인가? Coroutine의 Flow는 데이터 스트림이며, 코루틴 상에서 리액티브 프로그래밍 지원 하기 위한 구성요소이다. 이를 이해하기 위해서는 먼저 리액티브(반응형) 프로그래밍이 무엇인지, 그리고 Flow가 리 kotlinworld.com https://kotlinworld.com/232?category=973477 [Coroutine Flow] 2. Flow와 StateFlow의 차이는 무엇인가? Flow의 한계 Flow는 데이터의 흐름이다. Flow는 데이터의 흐름(flow)을 발생시키기만 할 뿐 데이터가 저장되지 않는다. 따라서 flow만을 이용해 안드로이드의 UIState를 업데이트 하기 위해서는..

코루틴 기초 정리 _ part 02 Cancellation And Timeouts

Cancellation ( 취소 , 해제 ) 코루틴 취소 val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a bit println("main: I'm tired of waiting!") job.cancel() // cancels the job job.join() // waits for job's completion println("main: Now I can quit.") 런치는 잡을 반환하는데, 거기서 cancel() 하면 취소가 됩니다. 코루틴에서 취소가능 여부 체크하기 (방법1 - suspend ) val job = launch(Dispatcher..

코루틴 기초 정리 _ part 01

코루틴 컨텍스트 CoroutineContext 에는 Main, IO, Default의 세 가지가 있다. Main은 말 그대로 메인 쓰레드에 대한 Context이며 UI 갱신이나 Toast 등의 View 작업에 사용된다. IO는 네트워킹이나 내부 DB 접근 등 백그라운드에서 필요한 작업을 수행할 때 사용된다. Default는 크기가 큰 리스트를 다루거나 필터링을 수행하는 등 무거운 연산이 필요한 작업에 사용된다. 코루틴 빌더 launch - 새로운 코루틴을 만들어주는 빌더 역할을 한다. - 이녀석을 사용하려면 코루틴 스코프가 필요하다. - UI 작업 O - Job을 반환한다 runBlocking - 얘도 코루틴 빌더역할을 한다. - 자식 스레드가 완료될 때 까지 현재 대기중인 스레드를 block한다. -..

(스크랩) 코루틴 이란?

2020-04-26 in Studynote 비동기 처리를 하는 데에는 몇 가지 방법이 있다. Rx는 다양한 기능을 제공하지만 진입 장벽이 높아 학습에 오랜 시간이 걸린다. 또 오랜 기간 사용되었던 AsyncTask는 지금은 Deprecated 된데다가 구리다.(내가 본 영상에서는 AsyncTask는 sucks 혹은 shit 로 표현되었다.) 코루틴을 이용하면 비동기스럽지 않게 생긴 코드로, 메모리를 효율적으로 사용하면서 손쉽게 비동기 처리를 할 수 있다. 그래서 간단히 알아보았다. 코루틴, Coroutine? Coroutine은 안드로에드에서 백그라운드 스레드에서 코드를 처리할 때 사용하는 하나의 방법이다. 코틀린 언어의 하위 개념인 줄 알았는데, C# 이나 Python, Go 등 다양한 언어에서 이미 ..

728x90
반응형