Thanks Brian, Got it.
"A send cannot take place until the reader is ready to receive." . So an
unbuffered channel does not have the same behaviour as a buffered channel
of size 1, fair.

I understand part about the waitGroup, I copy pasted code used to tutor the
newcomers to programming itself.

On Wed, Jul 27, 2022 at 1:05 PM Brian Candler <b.cand...@pobox.com> wrote:

> BTW, using time.Sleep() to keep goroutines running is poor practice.
>
> What I suggest is using a sync.WaitGroup.  Call wg.Add(1) for each
> goroutine you start; call wg.Done() when each goroutine ends; and call
> wg.Wait() to wait for them.
> https://go.dev/play/p/INl7BxG0ZSU
>
> On Wednesday, 27 July 2022 at 08:30:53 UTC+1 Brian Candler wrote:
>
>> Unless a channel is buffered, it is synchronous.  A send cannot take
>> place until the reader is ready to receive.
>>
>> You can make it buffered using
>>     numCh = make(chan int, 1)
>>     go write()
>>     go read()
>>
>> Or you can have two calls to read():
>>
>>     numCh = make(chan int)
>>     go write()
>>     go read()
>>     go read()
>>
>> On Wednesday, 27 July 2022 at 08:13:34 UTC+1 aravind...@gmail.com wrote:
>>
>>> Hi All,
>>> When I was explaining basics of channels to newcomers, I was using the
>>> below example
>>> https://go.dev/play/p/xx2qqU2qqyp
>>>
>>> I was expecting both Write 5 and Write 3 to be printed. But only Write 5
>>> was printed. I couldn't reason out the behaviour, can somebody point out
>>> what I am assuming wrong about.
>>>
>>> Thanks,
>>> Aravindhan K
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/2e036151-0069-44d9-9de2-3dcf98b33dban%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/2e036151-0069-44d9-9de2-3dcf98b33dban%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAJn1S2O6M8ag_4Bj2BCE301Dw25k278E18mH8U8kOwiX_cg6cQ%40mail.gmail.com.

Reply via email to