go - Why is my goroutine not executed? -


i'm learning go , wanted try goroutines , channels.

here's code:

package main import "fmt" func main(){  messages := make(chan string,3)  messages <- "one" messages <- "two" messages <- "three"  go func(m *chan string) {     fmt.println("entering goroutine...")     {         fmt.println(<- *m)     } }(&messages)  fmt.println("done!") } 

and here's result:

done! 

i don't understand why goroutine never executed. "entering goroutine" not printed , don't have error message.

the fact goroutine starts, ended before doing because program stop right after printing done!: execution of goroutines independant of main program, stopped @ same program. basically, need process make program wait them. channel waiting number of messages, sync.waitgroup, or other tricks.

you should read excellent post concurrency in go in golang blog.


Comments

Popular posts from this blog

google api - Incomplete response from Gmail API threads.list -

Installing Android SQLite Asset Helper -

Qt Creator - Searching files with Locator including folder -