Golang은 뛰어난 동시성 지원을 장점으로 자주 언급된다. 다른 프로그래밍 언어에서는 쓰레드를 활용하여 동시성 프로그래밍을 하지만 Golang에서는 고루틴을 활용하여 동시성 프로그래밍 개발을 하게 된다. 그렇다면 고루틴이 무엇이고 고루틴은 쓰레드와 무엇이 다르며 어떻게 동작하기에 동시성 처리 작업에 장점으로 언급되는 걸까? 고루틴(goroutine) Go 언어에서는 고루틴을 다음과 같이 소개한다 > “lightweight thread managed by the Go runtime” 한 마디로 Go 런타임에서 관리되는 경량 쓰레드라고 소개한다. 여기서 말하는 경량 쓰레드는 OS 레벨의 쓰레드와는 다른 개념이고 Go 언어 런타임에서 관리되는 논리적(혹은 가상적) 쓰레드라고 한다. 고루틴은 OS 쓰레드보다 더 가볍고 비동기적인 동시성 처리를 위해서 만들어진 것으로 Go 프로그램 런타임시에 생성하여 사용하고 소거하는 형식이기 때문에 Go 런타임이 관리하