Buffered channels

A buffered channel is a special type of channel that holds a buffer that contains a number of items. Unlike a regular channel, a buffered channel doesn't block unless the following takes place:

  • Its buffer is empty and we are trying to receive a value from the channel.
  • Its buffer is full and we are trying to send a value to the channel.

To declare a buffered channel, we use the following syntax:

myBufferedChannel := make(chan int,10)

The preceding syntax creates a buffered channel that can hold 10 int values.

To send a value to the buffered channel, we use the same syntax as with regular channels. Each send operation adds one item to the buffer, as follows:

myBufferedChannel <- 10

To receive a value from a buffered channel, we utilize the same syntax as well. Each receive operation removes one item from the buffer, as follows:

x := <-myBufferedChannel

Let's take a look at the select statement construct in the next section.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.135.80