nomadcoders 2

[GoLang 시작하기 10] Channels

Go 채널은 데이터를 주고 받는 통로이다. Go 채널은 Go루틴들 사이의 데이터를 주고받는 데에 사용된다. 이 파이프라인을 통해서 메세지를 보내거나 받을 수 있다. 이 채널을 이용하여 동시성 구현 시 락 등을 이용하지 않고도 할 수 있다. 또 교착 상태나 경쟁 상태를 파악하기 쉽도록 지원된다. 예제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package main import ( "fmt" ) func main() { ch:=make(chan bool) nums:=[2]string{"one","two"} for _, n :=range nums{ go isReady(n,ch) } fmt.Prin..

Golang 2020.04.10

[GoLang 시작하기 9] Go루틴

Go루틴 Go에서 "go" 키워드를 사용하여 함수를 호출하면, 런타임시 새로운 goroutine을 실행한다. 고루틴은 비동기적으로(asynchronously) 함수 루틴을 실행하여 여러 코드를 동시에(concurrently) 실행하는데 사용된다. 다음 그림은 main함수가 실행될 때 함수 1, 2, 3이 순차적으로 실행되는 것을 표현한 것이다. 함수 하나가 실행되는 데에 10초가 소요된다고 가정하면, 완료하는 데에는 30초가 필요할 것이다. 그런데 고루틴을 활용하여 이렇게 병렬적으로 처리할 수 있으면 함수는 10초밖에 소요되지 않는다. 다음 예제들을 살펴보자. #1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package main import ( "fmt"..

Golang 2020.04.09