다양한 작업을 효율적으로 하기 위해 스레드가 등장했다.
그러다가 조금 더 효율?을 추구하기 위해 코루틴이 등장했다.
스레드의 어떤 불편한 점이 있어 코루틴이 등장했는지 알아보자.
1. 스레드 기반 작업들은 작업의 전환이 어렵고, 전환에 드는 비용이 비싸다.
2. 간단한 작업에서는 콜백 방식을 사용하거나, 체이닝 함수를 사용해 스레드 블로킹 문제를 해결할 수 있지만, 실제 애플리케이션은 작업 간의 종속성이 복잡해 스레드 블로킹이 발생하는 것은 필연적이다.
이런 상황에서 코루틴을 사용해보자
1. 코루틴은 스레드의 사용 권한을 양보할 수 있다.
2. 코루틴은 스레드에 비해 생성과 전환 비용이 작고 언제든 스레드에 붙였다 뗏다가 가능해서
기존의 멀티스레드 환경에서 발생하는 리소스 대비 비약적으로 줄일 수 있다.
-> 이래서 코루틴을 경량 스레드라고 한다.
코루틴을 사용하기 좋은 동작
코루틴을 사용해도 성능 향상이 미비한 작업
