Go Channel Concurrency Demonstration

Visual representation of Go's producer-consumer pattern

Producer-Consumer Model

Producer
Waiting...
Channel
Empty
Consumer
Waiting...
main.go
func producer(ch chan int) {
    for i := 1; i <= 5; i++ {
        fmt.Println("Producing data:", i)
        ch <- i  // Send data to channel
    }
    close(ch)
}

func consumer(ch chan int) {
    for v := range ch {
        fmt.Println("Consuming data:", v)
    }
}

func main() {
    ch := make(chan int, 3)
    go producer(ch)
    go consumer(ch)
}

Execution Log