semaphore
-
Go에서 채널(Channel)을 이용한 고루틴(Goroutine) 개수 제한Go 2025. 4. 3. 00:32
Go의 goroutine은 가벼운 스레드로, 다른 언어보다 손쉽게 동시성을 확보할 수 있게 한다. 하지만 무제한으로 생성하면 메모리 부족이나 시스템 리소스 과부하가 발생할 수 있기 때문에 goroutine의 개수를 제한하는 방법이 필요하다. 이번 글에서는 channel을 이용해 goroutine 개수를 제한하는 방법을 공유한다.package mainimport ( "fmt" "sync" "time")func main() { maxGoroutines := 10 // 동시에 실행할 최대 goroutine 개수 semaphore := make(chan struct{}, maxGoroutines) var wg sync.WaitGroup for i := 0; i 코드..