본문 바로가기

반응형

coroutine

Coroutine 3부 코루틴은 Dispatcher.Default와 같은 멀티 스레드 디스패쳐를 통해서 동시에 수행되도록 만들수 있다. 이러한 상황에서 주로 발생하는 문제는 동기화 이슈가 있으며 일반적인 멀티 스레드에서의 동기화 해결책들과 비슷하지만 코루틴 고유의 것들도 존재 (Actor) Volatile [공유객체] 하나의 객체를 여러 개의 쓰레드가 함께 사용하거나 공유한다는 것을 의미 ex) 놀이터에 그네가 하나 있고, 어린 아이들은 셋 있다. 이런 상황에서 그네를 [공유 객체], 아이들을 [Thread]라고 말할 수 있다. 클래스의 멤버변수는 heap 메모리에 존재하므로 스레드가 공유하여 접근할 수 있으며 이때 각 스레드는 속도향상을 위해 메인 메모리에 접근해서 값을 가져가는게 아닌, 캐시에서 변수값을 읽어가며 쓰기 또한.. 더보기
Coroutine 1부 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴 코루틴은 Kotlin만의 고유한 개념이 아니며 다른 언어에서도 지원하고 있다. Co: 함께 routine : 규칙적으로 하는 일의 통상적인 순서나 방법, 일반적으로 빈번히 사용할 수 있는 프로그램 또는 그 일부 장점 경량 : 코루틴은 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있다. 메모리 누수 감소 : 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행 취소 지원 : 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달 일반적인 서브 루틴 fun main() { val addValue = plusOne(value) } fun plusONe.. 더보기

반응형