Blocking 되는 코드

블로킹 되는 코드는 하나의 스레드가 순차적으로 로직을 실행한다.

→ 처리 속도가 늦다.

Untitled

단순 스레드 전환

느리게 동작하는 특정 기능을 특정 스레드로 분리해 실행한다.

→ 실행된 스레드를 멈출 수 없음

→ 스레드가 많이 생성되면 많은 비용 소모

→ 가독성이 낮아짐

Untitled

콜백

함수를 non-blocking으로 만들고 작업이 끝났을 때 호출될 콜백 함수를 넘겨준다.

Untitled

→ 콜백 방식이 내부에서 계속 될 경우 가독성이 많이 낮아짐

→ 병렬로 처리할 수 있으나 두 작업을 동시에 처리는 불가

Untitled

RxJava, Reactive Stream

콜백 방식보다 좋은 가독성을 가진다

→ 개념이 어려워 러닝 커브가 심함