golang 의 channel 사용

1138 단어 channelgolang
channel
sample1 close twice
ch := make(chan bool)
close(ch)
close(ch)  //    panic ,channel  close  

읽 을 때 채널 이 미리 닫 혔 어 요.
ch := make(chan string)
close(ch)
i := <- ch //   panic, i        "",    channel bool ,       false

닫 힌 channel 에 데이터 쓰기http://play.golang.org/p/vl5d5tkfl7
ch := make(chan string)
close(ch)
ch <- "good" //  panic 

채널 이 닫 혔 는 지 판단 하기
i, ok := <- ch
if ok {
    println(i)
} else {
    println("channel closed")
}

순환 읽 기 채널
for i := range ch { // ch   ,for       
    println(i)
}

읽 기 시간 초과 방지
select {
    case <- time.After(time.Second*2):
        println("read channel timeout")
    case i := <- ch:
        println(i)
}

기록 시간 초과 방지http://play.golang.org/p/aODfPNwdmj
//          
select {
    case <- time.After(time.Second *2):
        println("write channel timeout")
    case ch <- "hello":
        println("write ok")
}

좋은 웹페이지 즐겨찾기