Golang Select 누가 먼저 실행되는가?

00_8_3·2023년 2월 16일
0

Go

목록 보기
1/10

누가 먼저 실행되는가?

main 함수의 for loop의 채널에 임의의 문자열을 넣으면
그 아래 블록의 코드보다

채널의 수신부 코드가 먼저 실행된다.

package main

import (
	"fmt"
)


func test (task chan string) {
    for {
        select {
        case asdf := <-task:
            fmt.Println("test1", asdf)
            break
        }
    }
}

func main() {
    task := make(chan string)

    go test(task)   
    
    loop: 
        for {
            select {
            case task <- "ㅅㄷㄴ":
                fmt.Println("test2")
                break loop
            }
        }
    
}

실행결과
> test1 ㅅㄷㄴ
> test2

0개의 댓글