chan은 고루틴 통신에 사용되는 golang에서 매우 중요한 것입니다. 왜냐하면 golang 프로그램에는 필연적으로 여러 고루틴이 있고 이러한 고루틴을 동기화하는 방법이 매우 중요하기 때문입니다.几 chan을 사용할 때 여러 가지 경험이 있습니다:
(추천 학습:
) 첫째, 항상 기호 & lt를 취하고 c 둘째, 읽을 때 ok가 없으면 읽을 수도 있습니다. 그러나 닫혀 있으면 읽을 수도 있고 할당이 없습니다. 닫혔는지 알고 싶다면 ok를 추가해야 합니다. 즉, chan이 닫히지 않는 한 그렇지 않으면 v,ok := < -c는 v := < ;-c 방식 대신 읽기에 사용해야 합니다.
다시 말하지만, 닫힌 채널에는 쓸 수 없으므로 일반적으로 쓰기가 성공할지 아니면 닫힐지 결정하려면 신호 채널(일반적으로 버퍼는 1)을 사용해야 합니다. . 글쓰기를 포기해야 합니다.
마지막으로 chan이 닫힌 후에도 데이터가 있으면 ok는 여전히 true이고 chan에 데이터가 없을 때까지는 false입니다.
채널이 닫히면 검색은 차단되지 않지만 0 값을 반환합니다package main import "fmt" func main() { c := make(chan int, 5) c <- 123 close(c) fmt.Println(<-c) fmt.Println(<-c) }
output
123 0
위 내용은 고랑찬은 문을 닫았나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!