본문 바로가기

Reactive-Programming

[Reactive Streams] Schedulers Schedulers Reactive Stream에서 Scheduler는 Operator를 사용하여 별도의 스레드에서 작업을 처리하게 하는 기능을 의미한다. 즉, Scheduler 방식을 사용해서 작업 스레드와 메인 스레드를 분리한다. | 종류 SubscribeOn 데이터를 주는 쪽(Publisher)을 별도의 쓰레드에서 실행 Publisher가 느리게 동작할 때 사용 -> Blocking I/O... flux.subscribeOn(Schedulers.single()).subscribe() Executors.newSingleThreadExecutor().execute(() -> pub.subscribe(s)); PublishOn 받아서 처리하는 쪽(Subscriber)을 별도의 쓰레드에서 실행 Subscr.. 더보기
[Reactive Streams] Operators 이전 글 요약 Publisher(공급자) -> Subscriber가 Publisher에게 등록 -> Subscriber 최대 처리량 세팅(onSubscribe) -> Publisher는 입력 받은 최대 처리량 씩 Subscriber의 onNext 호출 -> Subscriber는 모든 처리가 완료되면 onComplete 호출, 에러 발생 시 onError 호출 Operators Publisher -> [Data1] -> Operator -> [Data2] -> Operator -> [Data3] ... -> Subscriber 중간에 Data를 가공한다. Publisher와 Subscriber가 바로 연결되어 있는 것이 아닌 중간에 Operator가 존재할 수 있다. Map Publisher -> [Dat.. 더보기
[Reactive Streams] Basic Reactive Programming 외부에서 데이터나 이벤트가 발생하면 그것에 맞게 대응하도록 프로그래밍하는 기법 1. Duality(쌍대성) Iterable Collection -> Iterable public class IterableCustom { public static void main(String[] args) { Iterable iter = () -> new Iterator() { final int MAX = 10; int cursor = 0; @Override public boolean hasNext() { return cursor < MAX; } @Override public Integer next() { return ++cursor; } }; for (Integer integer : .. 더보기