투케이2K

39. (Go Lang) [Mac Os] Go 문법 : Go 채널 (Channel) 사용해 채널 통로를 통해 데이터 보내기 및 받기 수행 본문

Go Lang (Go 언어)

39. (Go Lang) [Mac Os] Go 문법 : Go 채널 (Channel) 사용해 채널 통로를 통해 데이터 보내기 및 받기 수행

투케이2K 2024. 2. 20. 19:55

[개발 환경 설정]

개발 언어 : Go

 

[소스 코드]

package main

import "fmt"

func main() {

	// ---------------------------------------------------
	// [기본 설명]
	// ---------------------------------------------------
	// Go 채널은 그 채널을 통하여 데이타를 주고 받는 통로이며, 채널은 make() 함수를 통해 미리 생성되어야 합니다
	// ---------------------------------------------------
	// Go 채널은 주로 Go 루틴(go routine) 들 사이 데이터를 주고 받는데 사용되며, 상대편이 준비될 때까지 채널에서 대기함으로써 별도의 lock을 걸지 않고 데이터를 동기화하는데 사용됩니다
	// ---------------------------------------------------
	// Go 채널은 채널 연산자 <- 을 통해 데이터를 보내고 받습니다
	// ---------------------------------------------------

	// [정수형 채널을 생성]
	ch := make(chan int)

	go func() {
		ch <- 123 // [채널에 123을 보낸다]
	}()

	var i int
	i = <-ch // [채널로부터 123을 받는다]

	// [로그 출력 수행]
	fmt.Println("")
	fmt.Println("----------------------------------------------")
	fmt.Println("[로그 출력 수행]")
	fmt.Println("----------------------------------------------")
	fmt.Println(i)
	fmt.Println("----------------------------------------------")
	fmt.Println("")
}
 

[결과 출력]

 

 

반응형
Comments