Channels

The philosophy for sharing data with Go is Don't communicate by sharing memory; instead, share memory by communicating. Channels are the language construct that support this approach  they allow the sharing of data by communicating between goroutines correctly, rather than sharing common data. This is the main way that Go avoids race conditions (that is, one thread writing data while others read the same data). Channels are used for all sorts of patterns in Go  they can communicate the result of a goroutine (or pass data between routines), provide updates when data changes, or even signal that processes should finish.

Channels, just like all variables and constants in Go, require a type. The type of a channel determines the data ...

Get Hands-On GUI Application Development in Go now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.