Dlaczego fmt.Println wewnątrz goroutine nie drukuje linii?

Mam następujący kod:

package main

import "net"
import "fmt"
import "bufio"

func main() {
    conn, _ := net.Dial("tcp", "irc.freenode.net:6667")

    reader := bufio.NewReader(conn)
    go func() {
        str, err := reader.ReadString('\n')
        if err != nil {
            // handle it
            fmt.Println(err)
        }
        fmt.Println(str)
    }()

}

Jeśli nie mam kodu, który czyta z bufora w goroutine, wysyła komunikat taki jak ten, czego się spodziewałem

:zelazny.freenode.net NOTICE * :*** Looking up your hostname...

Jednak posiadanie go w goroutine nic nie drukuje.

Czy ktoś może wyjaśnić, dlaczego tak jest?

questionAnswers(4)

yourAnswerToTheQuestion