Ho il seguente codice:Perché fmt.Println all'interno di una goroutine non stampa una riga?
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)
}()
}
Se non ho il codice che legge dal buffer in un goroutine, esso emette un messaggio come questo, che è quello che mi aspetto che accada:
:zelazny.freenode.net NOTICE * :*** Looking up your hostname...
Tuttavia, averlo in una goroutine non stampa nulla.
Qualcuno può spiegare perché lo è?
Grazie per la grande spiegazione, James. Sicuramente penso che i canali siano ciò che sto cercando. –