Warum benutzen Sie den `go` - Schlüsselwort wenn Sie eine Funktion aufrufen?
Ging ich durch ein Beispiel für einen TCP-server. Sie definiert eine Funktion, und nannte es mit:
go handleRequest(conn)
Ich dachte, es war komisch zu sehen, die go
keyword, also versuchte ich es ohne:
handleRequest(conn)
Zu meiner überraschung funktionierte!
- Wenn beide funktionieren auf die gleiche Weise, warum die
go
keyword überhaupt? - Wenn Sie anders funktionieren, was ist der Unterschied?
- Gibt es einen bestimmten Stil-Richtlinien zu verwenden, oder sollten Sie nur verwenden, persönliche Präferenz?
go fn()
läuftfn
im hintergrund, so dass die goroutine gestartet kann es akzeptieren, andere verbindungen und die Bearbeitung anderer Anfragen, die während der erstenhandleRequest()
noch läuft.- Go check out golang.org/ref/spec#Go_statements -- nicht sicher, ich würde verlassen die Frage, kann get downvoted für mangelnde Forschung.
- beachten Sie, dass die "Go-Anweisungen", und der Begriff "goroutine" definiert sind, auf die exakt gleiche Seite, Lesen Sie über die "Go" - Schlüsselwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
go
beginnt eine goroutine, der verwaltet wird vongolang
Laufzeit.Kann es entweder auf die aktuelle OS-thread, oder läuft es auf einem anderen OS-thread automatisch.
Können Sie beziehen sich auf grundlegende
golang
Unterlagen für diese, zum Beispiel, ein Element in der Google-Suche Stichwortgoroutine
ist golang Parallelität.goroutine
vor, da ich neu zu Gehen, sodass ich nicht wusste auf Suche. Danke!Wenn Sie das Go-Schlüsselwort vor ein func ure machen, dass die func-run in eine goRoutine, ist wie ein Java-Thread, und die gehen Weg für Parallelität, mehr info hier. Viel Glück