martedì 9 marzo 2010

wait() in Go, How to?

Stamattina sono stato colto da un dubbio che ha fortunatamente trovato una risposta nella ricchissima mailing list di go-language: http://groups.google.com/group/golang-nuts?pli=1

La domanda che mi sono posto è la seguente: esiste un modo intelligente per aspettare che tutte le go routines abbiano finito la loro esecuzione prima di procedere alla chiusura della funzione main?

Stamattina, come al solito, apro le mail e trovo la seguente discussione.

Subito arrivano alcune risposte come ad esempio:
The standard practice in Go seems to be for goroutines to pass to a
channel so signal their end. For example:

package main

func routine(quit chan int) {
// do stuff
quit <- 1

}

func main() {
routineQuit := make(chan int)
go routine(routineQuit)

<-routineQuit // blocks until quit is written to

}

-Daniel

Ma poi arriva questo link che vi invito caldamente a seguire se siete interessati all'argomento come lo sono io perchè lo spiega in modo molto chiaro: link.

A breve altri approfondimenti.
Buon Go a tutti!

Nessun commento: