Go 채널

1 개요[ | ]

Go Channels
Go 채널, 채널
  • 자료형이 지정된 통로
  • 채널 연산자 <-로 값을 보내고 받을 수 있다.
  • 두 고루틴이 채널을 통해 서로 소통할 수 있다.
package main
import "fmt"
func sum(s []int, c chan int) {
	sum := 0
	for _, v := range s {
		sum += v
	}
	c <- sum // sum을 c로 보낸다
}
func main() {
	s := []int{7, 2, 8, -9, 4, 0}
	c := make(chan int)
	go sum(s[:len(s)/2], c)
	go sum(s[len(s)/2:], c)
	x, y := <-c, <-c // c로부터 받는다
	fmt.Println(x, y, x+y)
}
package main
import "fmt"
func main() {
    messages := make(chan string)
    go func() { messages <- "ping" }()
    msg := <-messages
    fmt.Println(msg)
}

2 같이 보기[ | ]

3 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}