Junior — Middle
What types of parallel task implementations do you know?
sobes.tech AI
Answer from AI
In Go, parallel tasks can be implemented in several ways:
-
Goroutines — lightweight threads that are started with the
gokeyword. They allow functions to run concurrently. -
Channels — used for communication and synchronization between goroutines, enabling safe data transfer.
-
Worker pools — a pool of goroutines that take tasks from a queue and process them, helping to control the number of goroutines running simultaneously.
-
sync.WaitGroup — used to wait for a group of goroutines to finish.
Example of launching a goroutine and passing data through a channel:
ch := make(chan int)
go func() {
ch <- 42 // send value into the channel
}()
val := <-ch // receive value from the channel
fmt.Println(val)