블로킹 되는 코드는 하나의 스레드가 순차적으로 로직을 실행한다.
→ 처리 속도가 늦다.
느리게 동작하는 특정 기능을 특정 스레드로 분리해 실행한다.
→ 실행된 스레드를 멈출 수 없음
→ 스레드가 많이 생성되면 많은 비용 소모
→ 가독성이 낮아짐
함수를 non-blocking으로 만들고 작업이 끝났을 때 호출될 콜백 함수를 넘겨준다.
→ 콜백 방식이 내부에서 계속 될 경우 가독성이 많이 낮아짐
→ 병렬로 처리할 수 있으나 두 작업을 동시에 처리는 불가
콜백 방식보다 좋은 가독성을 가진다
→ 개념이 어려워 러닝 커브가 심함