JVM 환경에서 반응형 프로그래밍과 코루틴 구현하기

보기·2022년 3월 3일
0

JVM

목록 보기
1/1
post-thumbnail

반응형 프로그래밍

반응형 프로그래밍은 시스템 이벤트(데이터의 변화)를 시점으로 프로그래밍이 동작하게 하는 것을 의미한다.

반응형 프로그래밍과 동시성

반응형 프로그램은 시스템 이벤트를 시점으로 Task가 실행, 일지정지, 다시시작, 종료 되기 때문에 Task에 대한 동시성을 보장해야 하며 Task의 State를 저장하고 관리해야 한다.

이러한 목표를 달성하기 위해 Rxjava와 같은 라이브러리를 사용하거나, 직접 코루틴 등을 구현해야 한다.

JVM - Coroutine

Kotlin에서 코루틴은 Continuation 이라는 object를 함수의 맨 끝에 매개변수를 추가해서 넘겨주는 방식으로 작동한다.

즉, Kotlin의 코루틴은 다음 실행에 이전 state 정보를 갖는 object를 매개변수로 전달하는 것으로 동시성을 보장하고, 비동기적 흐름을 갖게 된다.

Java에서도 위와 같은 방법을 사용한다면 코루틴을 간편하게 구현할 수 있다. 자신의 상태를 인스턴스 멤버변수에 저장하고 그 상태를 업데이트하는 메서드를 통해 자신의 상태를 변경하는 익명 클래스를 사용하면 된다.

참고 자료

Thread vs Coroutine 전격 비교

Kotlin 코루틴의 내부 구현

profile
하루를 나답게

0개의 댓글