Mein Programm wie folgt aus:.Wird eine Mehrfach-Goroutine gleichzeitig eine Methode auf einem Conn aufrufen?
func handle(conn net.Conn) {
msg := "hello, world!"
for i:= 0; i< 100000; i++ {
go func() {
err := write(conn, msg)
}
}
}
func write(conn net.Conn, msg string) error {
mlen := fmt.Sprintf("%04d", len(msg))
_, err := conn.Write([]byte(mlen + msg))
return err
}
Das Programm wird 100000 goroutines zur gleichen Zeit laufen, und alle goroutines werden Nachricht an die gleiche Verbindung senden Ich bin Zweifel, dass Server-Fehlermeldung wie „hellohelloworldworld“ erhalten wird, aber es gibt kein Problem, wenn das Programm in meinem Ubuntu 14.04LTS läuft.
Also, wird mehrere Goroutine eine Methode auf einem Conn gleichzeitig aufrufen?
============================================== ========================
Wie kann ich die Write
Methode atomar halten?