KamaTAEWOO / FastCampusStudy-2

0 stars 0 forks source link

Q4) 코루틴을 왜 사용하는 걸까요? #4

Closed ows3090 closed 1 year ago

KamaTAEWOO commented 1 year ago

@ows3090

  1. 비동기 코드의 가독성 향상
    • 동기 토기와 같이 작성할 수 있도록 지원
    • 코드의 복잡도를 줄이고 이해하기 쉽게 작성할 수 있음
  2. 동시성 작업 처리 간소화
    • 여러 작업을 동시에 처리 가능
    • 스레드와 달리 오버헤드 없이 처리할 수 있기 때문에 더욱 간편하고 빠르게 작업
  3. 메모리 사용량 감소
    • 오버헤드를 사용하지 않기 때문에 메모리 사용량도 적음
    • 대규모 동시성에 효율적

-- 오버헤드란? 어떤 처리를 하기 위해 필요한 추가적인 작업이나 자원을 말함. (스레드보다 코틀린이 자원이 더 적다는 뜻)

ows3090 commented 1 year ago

@KamaTAEWOO 태우님 코루틴은 왜 스레드에 비해 자원이 적을까요?

KamaTAEWOO commented 1 year ago

@ows3090 코루틴은 하나의 스레드 내에서 실행하며, 함수 호출 스택(함수를 실행하면 로컬 변수, 매개변수 등을 저장하게 되는데 이것을 저장하는 공간을 뜻합니다.)을 공유하기 때문입니다.

함수 호출 스택을 공유: A코루틴 사용 중 B코루틴 호출 시 A위에 B가 쌓이는 것이 아닌 A 코루틴 자리에 B코루틴이 자리하게 되어 공유하게 됨. 그래서 메모리 절약이 가능함.

ows3090 commented 1 year ago

@KamaTAEWOO 네 Context Switching 관점에서도 확인해보면 좋아요