Junior — Middle
Cum implementezi munca cu canalele în proiectul tău?
sobes.tech AI
Răspuns de la AI
În proiectul meu, lucrul cu canalele în Go se bazează pe utilizarea acestora pentru sincronizare și schimb de date între goroutines. De obicei, creez canale cu tipul de date necesar, de exemplu, chan int sau chan string, și le folosesc pentru transmiterea mesajelor sau semnalelor.
Exemplu de utilizare simplă a unui canal:
func worker(ch chan int) {
for val := range ch {
fmt.Println("Valoare primită:", val)
}
}
func main() {
ch := make(chan int)
go worker(ch)
ch <- 10
ch <- 20
close(ch) // Închidem canalul pentru ca worker-ul să termine ciclul
}
De asemenea, este important să închidem corect canalele pentru a evita blocajele și să folosim select pentru a lucra cu mai multe canale simultan. În proiecte, folosesc adesea canale tamponate pentru a evita blocajele la trimitere în condiții de încărcare mare.