고루틴

덤프버전 :


파일:나무위키+상위문서.png   상위 문서: Go(프로그래밍 언어)

이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.




1. 개요
2. 상세


Goroutine

1. 개요[편집]


고루틴은 Go 언어에서 제공하는 동시성 제어 패러다임으로, OS의 스레드를 Go 언어 런타임에서 구현한 경량 스레드의 일종이다.


2. 상세[편집]


고루틴은 Go 언어의 대표적인 특징으로 OS 스레드와 동일한 동시성 프로그래밍의 이점을 누릴 수 있으면서 동일 환경에서 OS 스레드 대비 계산량, 메모리 사용 효율 측면에서 이점이 존재한다. 이런 이점이 존재하는 이유는 다음과 같다.

  • Go 언어 런타임에서 스케줄링 되므로 문맥 교환(Context Switching)에서 커널 스페이스로 이동하는 오버헤드 방지.
  • 채널(Channel)[1] 구현체를 통해 일반적으로 lock 대비 효율적인 데이터 전달 가능.
  • 스레드 간 약 8 KiB의 경량화된 스택 사이즈로 할당.
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2024-01-07 19:28:40에 나무위키 고루틴 문서에서 가져왔습니다.

[1] Communicating sequential processes(CSP)로 구현된 thread-safe로 동작하는 Worker unit간의 데이터 전달 구현