Tag: goroutine
Eine goroutine ist ein leichtes thread der Ausführung, der verwaltet wird durch die Go language runtime.
2
Antworten
Nehmen Sie den folgenden code-snippet: func main() { ch := make(chan int) quit := make(chan int) go func() { for { ch <- querySomePeriodicThing() } }() //... loop: for { select { case <-ch: handlePeriodicThing() case <-quit:
3
Antworten
Habe ich eine Scheibe von ganzen zahlen, die manipuliert werden, die gleichzeitig: ints := int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Ich bin mit einer gepufferten Kanal als semaphore, um eine Obere Grenze der
1
Antworten
Habe ich eine queue und eine Funktion, die beide dequeueing und enqueueing. Ich möchte sicherstellen, dass die richtige Menge von goroutines auf betreiben der Warteschlange, solange es ist etwas in der Liste. Dies ist der code, den
1
Antworten
Ich bin mit golang zu implementieren eine einfache event-driven-Arbeiter. Es ist so: go func() { for { select { case data := <-ch: time.Sleep(1) someGlobalMap[data.key] = data.value } } }() Und die main-Funktion erstellen mehrere goroutines, und
2
Antworten
Was sind einige gute Praktiken zu verhindern, dass race-conditions in Gehen? Die einzige, die ich denken kann, ist nicht Austausch von Daten zwischen goroutines die Eltern goroutine sendet eine Tiefe Kopie eines Objekts, nicht das Objekt selbst,
1
Antworten
Warum Gehen Panik auf das schreiben zu einem geschlossenen Kanal? Während die value, ok := <-channel idiom für das Lesen von Kanälen, und so ist die ok-Ergebnis getestet werden kann, zur Kollision mit einem geschlossenen Kanal: //reading
3
Antworten
In der GO-tutorial, wir haben diese Folie: Goroutines package main import ( "fmt" "time" ) func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() {
3
Antworten
Mit Go context Paket es ist möglich, pass-request-spezifische Daten auf den stack request-handling-Funktionen, die mit func WithValue(parent Context, key, val interface{}) Context Erzeugt einen neuen Context eine Kopie des Elternteils und enthält den Wert val zu dem
3
Antworten
Brauche ich eine riesige Menge von goroutines und warten auf Ihre Kündigung. Die intuitive Art und Weise, scheint ein Kanal zu warten, bis alle fertig sind : package main type Object struct { //data } func (obj
1
Antworten
Ich bin Recht neu in go und ich suchte für diese Mühe auf diese Website, und founed Fragen beantwortet, aber nicht implementieren kann, diese Antworten zu meinem Fall. Ich habe einen code : func receiveWork(out <-chan Work)
11
Antworten
Habe ich Go goroutines in letzter Zeit und dachte, es wäre schön, etwas zu haben, ähnlich wie in Java. Soweit ich gesucht habe in der üblichen Weise zu parallelisieren, eine Methode aufgerufen wird, etwas zu tun: final
1
Antworten
Ich versuche zu verarbeiten Kontext timeout für jede Anforderung. Wir haben folgende server-Strukturen: Flow-übersicht: Go Server: im Grunde wirkt wie ein [Reverse-proxy].Zwei Auth Server: Überprüfen der Anforderungen-Authentifizierung. Application Server: Core-request-Prozess-Logik. Nun, wenn Authorization server können nicht in
7
Antworten
Hier ist eine einfache Gehen http (tcp) - Verbindung test-Skript func main() { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, client") })) defer ts.Close() var wg sync.WaitGroup for i := 0; i < 2000; i++
4
Antworten
Folgenden code: package main import ( "fmt" "math/rand" "time" ) func main() { for i := 0; i < 3; i++ { go f(i) } //prevent main from exiting immediately var input string fmt.Scanln(&input) } func f(n
2
Antworten
In seiner Antwort auf diese Frage: Golang für Windows unberechenbares Verhalten? user @verteilten empfohlen zu sperren/zu synchronisieren Zugriff auf eine shared-variable auf die gleichzeitige goroutines. Wie kann ich das tun? Mehr auf die Frage: Bekomme ich diesen
3
Antworten
Habe ich gleichzeitige goroutines, die wollen, fügen Sie einen (Zeiger auf einen) struct auf die gleiche Scheibe. Wie schreiben Sie, dass in der Go zu machen, Parallelität-sicher? Wäre dies mein Parallelität-unsafe-code, mit einer Gruppe warten: var wg
4
Antworten
Bin ich neu zu gehen, und ich bin versucht, zu erstellen eine einfache chat-server, wo die clients können broadcast-Nachrichten an alle verbundenen clients. In meinem server, ich habe eine goroutine (unendliche Schleife) akzeptiert die Verbindung und alle
3
Antworten
Ich verwenden möchten, Gehen Sie zum herunterladen von Aktienkurs-Tabellen von Yahoo finance. Ich werde die eine http-Anforderung für jeder Lager in seiner eigenen goroutine. Ich habe eine Liste von rund 2500 Symbole, aber anstatt 2500 Anfragen parallel
10
Antworten
Habe ich Go goroutines in letzter Zeit und dachte, es wäre schön, etwas zu haben, ähnlich wie in Java. Soweit ich gesucht habe in der üblichen Weise zu parallelisieren, eine Methode aufgerufen wird, etwas zu tun: final
3
Antworten
TL;TR: Bitte gehen Sie einfach auf den letzten Teil und sagen Sie mir, wie Sie dieses problem lösen würde. Habe ich begonnen, mit Golang heute morgen aus Python. Ich will, nennen eine closed-source-Programm mehrmals, mit einem bit
3
Antworten
Dieser code wählt alle xml-Dateien im gleichen Ordner, wie die ausführbare Datei aufgerufen und asynchron gilt der Verarbeitung zu jedem Ergebnis in der callback-Methode (im Beispiel unten, nur der name der Datei wird ausgedruckt). Wie kann ich
4
Antworten
Wie können andere goroutines halten Sie während der Ausführung auf ein syscall? (bei Verwendung GOMAXPROCS=1) So weit ich bin mir bewusst, dass beim Aufruf einen syscall der thread gibt die Kontrolle, bis der Systemaufruf zurück. Wie können
5
Antworten
http://play.golang.org/p/vhaKi5uVmm package main import "fmt" var battle = make(chan string) func warrior(name string, done chan struct{}) { select { case opponent := <-battle: fmt.Printf("%s beat %s\n", name, opponent) case battle <- name: //I lost :-( } done
3
Antworten
Ist dieses Beispiel für die Verwendung von sync.WaitGroup richtig? Es gibt das erwartete Ergebnis, aber ich bin nicht sicher über die wg.Add(4) und die position der wg.Done(). Macht es Sinn, fügen Sie die vier goroutines auf einmal
4
Antworten
In der Google I/O 2012 Präsentation Concurrency PatternsRob Pike erwähnt, dass mehrere goroutines Leben können, in einem thread. Bedeutet dies, dass Sie umgesetzt werden, als Coroutinen? Wenn nicht, wie werden Sie umgesetzt? Links zu source-code wäre willkommen.
5
Antworten
Habe ich einen lange Laufenden server-geschrieben in Go. Main feuert aus mehreren goroutines wo die Logik des Programms führt. Nachdem, das main tut nichts sinnvolles. Einmal main beendet, wird das Programm beendet. Die Methode, die ich im
4
Antworten
Ich bin ein Neuling auf golang, also bitte Entschuldigung, wenn dies ist eine sehr grundlegende Frage. Der folgende code gibt die Kompilierung Fehlermeldung "unexpected gehen': x := go doSomething(arg) func doSomething(arg int) int{ ... return my_int_value }
6
Antworten
Wie viele goroutines kann ich schmerzfrei werden? Wikipedia z.B. sagt, in Erlang 20 Millionen Vorgänge angelegt werden kann, ohne dass die Leistungsfähigkeit. Update: ich habe gerade untersucht goroutines Leistung ein wenig und bekam solche Ergebnisse zu erzielen:
6
Antworten
Ich habe eine goroutine, ruft eine Methode auf und übergibt zurückgegebenen Wert auf einen Kanal: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() Wie verhindere ich, dass so eine goroutine? Kommentar