Junior — Middle
Tell about your experience using channels for organizing interaction between components or threads.
sobes.tech AI
Answer from AI
In Go, channels are used to facilitate safe data exchange between goroutines, simplifying synchronization and communication.
Example of using a channel to transfer data between two goroutines:
package main
import (
"fmt"
"time"
)
func worker(ch chan string) {
msg := <-ch // receive message from channel
fmt.Println("Received message:", msg)
}
func main() {
ch := make(chan string)
go worker(ch)
ch <- "Hello from main!" // send message to channel
time.Sleep(time.Second) // wait for goroutine to finish
}
Channels help prevent data races and make code more readable and maintainable when working with concurrency.