
Goroutine 기초
Goroutine, go 키워드, sync.WaitGroup, runtime.GOMAXPROCS, goroutine 누수
20 면접 질문·
Junior
1Go에서 goroutine이란 무엇입니까?
1
Go에서 goroutine이란 무엇입니까?
답변
goroutine은 다른 함수와 동시에 실행되는 함수로, OS가 아닌 Go 런타임이 관리합니다. OS 스레드(수 MB)에 비해 매우 가볍습니다(초기 스택이 수 KB). Go 스케줄러는 수천, 심지어 수백만 개의 goroutine을 제한된 수의 OS 스레드에 멀티플렉싱할 수 있어 Go에서 동시성을 매우 쉽게 다룰 수 있습니다.
2Go에서 새로운 goroutine을 시작하려면 어떻게 합니까?
2
Go에서 새로운 goroutine을 시작하려면 어떻게 합니까?
답변
go 키워드 뒤에 함수 호출을 붙이면 새로운 goroutine이 시작됩니다. 예를 들어 'go myFunction()' 또는 익명 함수의 경우 'go func() { ... }()' 와 같이 작성합니다. goroutine은 호출하는 코드와 병렬로 즉시 실행됩니다. 주의: main 함수는 실행한 goroutine이 끝나기를 자동으로 기다리지 않습니다.
3goroutine과 OS 스레드의 주요 차이점은 무엇입니까?
3
goroutine과 OS 스레드의 주요 차이점은 무엇입니까?
답변
goroutine은 초기 스택으로 약 2 KB를 사용하지만 OS 스레드는 일반적으로 1~2 MB가 필요합니다. Go runtime은 사용자 공간에서 goroutine의 scheduling을 관리하며(M:N scheduling), 수천 개의 goroutine을 몇 개의 OS 스레드에 멀티플렉싱합니다. 이를 통해 리소스에 의해 제한되는 OS 스레드와 달리 시스템에 부담을 주지 않고 수백만 개의 goroutine을 생성할 수 있습니다.
4
메인 프로그램이 goroutine이 끝나기 전에 종료되면 어떻게 됩니까?
5
Go runtime은 goroutine 실행을 어떻게 관리합니까?
+17 면접 질문
기타 Go 면접 주제
Go 기초
Junior
25개 질문Go 데이터 구조
Junior
20개 질문Go 인터페이스
Junior
18개 질문에러 처리
Junior
20개 질문Channels
Junior
22개 질문Go Modules
Mid-Level
18개 질문HTTP 서버
Mid-Level
24개 질문HTTP 클라이언트
Mid-Level
18개 질문JSON 인코딩
Mid-Level
20개 질문Database/SQL
Mid-Level
22개 질문context 패키지
Mid-Level
20개 질문Testing
Mid-Level
22개 질문동시성 패턴
Mid-Level
24개 질문동기화 프리미티브
Mid-Level
22개 질문Go 웹 프레임워크
Mid-Level
20개 질문REST API 설계
Mid-Level
20개 질문gRPC
Mid-Level
22개 질문Reflection
Senior
20개 질문메모리 관리
Senior
24개 질문성능 최적화
Senior
22개 질문Generics
Senior
20개 질문Go Design Patterns
Senior
24개 질문Microservices
Senior
24개 질문보안 및 인증
Senior
24개 질문Docker & Containerization
Senior
20개 질문Kubernetes Basics
Senior
22개 질문고급 Go
Senior
20개 질문CLI 개발
Senior
20개 질문