> 백엔드 개발 > Golang > 고랑찬은 문을 닫았나요?

고랑찬은 문을 닫았나요?

(*-*)浩
풀어 주다: 2019-12-13 11:45:24
원래의
3116명이 탐색했습니다.

고랑찬은 문을 닫았나요?

chan은 고루틴 통신에 사용되는 golang에서 매우 중요한 것입니다. 왜냐하면 golang 프로그램에는 필연적으로 여러 고루틴이 있고 이러한 고루틴을 동기화하는 방법이 매우 중요하기 때문입니다.几 chan을 사용할 때 여러 가지 경험이 있습니다:
(추천 학습:

Go

) 첫째, 항상 기호 & 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿