Go 채널의 버퍼링 동작: make(chan bool) 대 make(chan bool, 1)
make를 사용하여 생성된 버퍼되지 않은 채널 (chan bool)은 값을 보유하는 능력이 make(chan bool, 1)로 정의된 버퍼 채널과 다릅니다.
버퍼되지 않은 채널: make(chan bool)
예:
<code class="go">chanFoo := make(chan bool) // Writes will block because no receiver is waiting chanFoo <- true // Corresponding read will now succeed even though no value was sent <-chanFoo</code>
버퍼 채널: make(chan bool, 1)
예:
<code class="go">chanFoo := make(chan bool, 1) // Write will succeed immediately chanFoo <- true // Subsequent read will also succeed <-chanFoo</code>
동작의 차이점
버퍼링되지 않은 채널의 실용성
버퍼링되지 않은 동안 채널은 덜 직관적이거나 덜 유용해 보일 수 있으며 특정 용도가 있습니다.
위 내용은 Go 채널의 `make(chan bool)`과 `make(chan bool, 1)` 사이의 버퍼링 동작의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!