Search
Duplicate
🧵

코루틴에 대한 오해

간단소개
코루틴은 비동기이다?
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
개발지식
Scrap
태그
코루틴
파이버
스레드
비동기
9 more properties
코루틴, 파이버, 스레드 글을 참고하면 좋습니다.

코루틴이란?

코루틴을 간단히 정의하자면, 실행을 잠시 멈췄다 재개할 수 있는 특별한 함수입니다.
정말 간단하죠?. 코루틴의 정의는 이게 전부입니다.

코루틴은 비동기이다?

많은 분들이 코루틴을 비동기로 생각하시는데, 엄밀히 따지자면 코루틴은 비동기가 아닙니다.
스케줄링에 스레드가 들어간다면 비동기가 되겠지만, 스케줄링이 들어가는 순간 이미 파이버입니다.
코루틴이 비동기라고 하는 것은 마치 직사각형의 네 변의 길이가 같다고 하는 것과 같습니다.

파이버란?

파이버는 코루틴에 스케줄링을 추가한 것입니다.
많이 쓰이는 async/await 도 파이버입니다.
스케줄링에 스레드를 사용할 수도 있긴 하지만, 스레드는 코루틴이나 파이버와 관련이 없습니다.
파이버라는 말이 생소할 수 있는데, 현재는 대부분의 사람들이 파이버를 코루틴이라고 부릅니다 …

그럼 파이버는 비동기일까?

앞서 대부분의 사람들이 파이버를 코루틴이라고 부른다고 했습니다.
그렇다면 순수 코루틴이 아닌 파이버라면 어떨까요? 파이버는 비동기일까요?
이 역시 마찬가지로 파이버 자체로는 비동기가 아닙니다.
파이버의 스케줄링에 스레드를 사용해야 그제서야 비동기가 됩니다.