Tag: goroutine

Eine goroutine ist ein leichtes thread der Ausführung, der verwaltet wird durch die Go language runtime.

OK-exit-Programm mit aktiv-goroutine?

Anzahl der Antworten 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:

Wie zu warten, bis gepufferten Kanal (semaphore) leer ist?

Anzahl der Antworten 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

Zählung / Anzeige der Anzahl der aktiven goroutines

Anzahl der Antworten 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

Event-driven-Muster in golang

Anzahl der Antworten 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

Golang: die Vermeidung von race-conditions

Anzahl der Antworten 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,

Warum Gehen Panik auf das schreiben zu einem geschlossenen Kanal?

Anzahl der Antworten 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

Warum ist die Zeit.Schlaf notwendig, um bestimmte goroutines?

Anzahl der Antworten 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() {

Golang Kontext.WithValue: so fügen Sie mehrere Schlüssel-Wert-Paare

Anzahl der Antworten 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

Warten Sie, bis die Kündigung von n goroutines

Anzahl der Antworten 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

Go : Zuordnung zum Eintrag in der null-map

Anzahl der Antworten 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)

Wie asynchron aufrufen einer Methode in Java

Anzahl der Antworten 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

Kontext timeout-Implementierung, die auf jede Anfrage mit golang

Anzahl der Antworten 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

Gehen, tcp zu viele offene Dateien im debug

Anzahl der Antworten 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++

Die parallele Verarbeitung in golang

Anzahl der Antworten 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

Wie lock/synchronisieren des Zugriffs auf eine variable im Gehen während der gleichzeitigen goroutines?

Anzahl der Antworten 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

Golang Parallelität: wie zum Anhängen an der gleichen Scheibe aus verschiedenen goroutines

Anzahl der Antworten 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

Wie der broadcast-Nachricht über den Kanal

Anzahl der Antworten 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

Wie eine goroutine pool

Anzahl der Antworten 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

So rufen Sie eine Methode in Java asynchron auf

Anzahl der Antworten 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

Wie würden Sie einen Pool von Goroutines definieren, die auf Golang sofort ausgeführt werden?

Anzahl der Antworten 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

Wie man wartet, bis alle Goroutines fertig sind, ohne die Zeit zu nutzen.

Anzahl der Antworten 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

Wie funktionieren Goroutine? (oder: goroutines und OS threads relation)

Anzahl der Antworten 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

Golang: anonyme Struktur und leere Struktur

Anzahl der Antworten 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

Beispiel für sync.WaitGroup korrekt?

Anzahl der Antworten 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

Ist eine Go-Goroutine eine Coroutine?

Anzahl der Antworten 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.

Wie kann ich am besten ein laufendes Go-Programm laufen lassen?

Anzahl der Antworten 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

Abfangen von Rückgabewerten von Goroutines

Anzahl der Antworten 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 }

Maximale Anzahl von Goroutinen

Anzahl der Antworten 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:

wie man eine Goroutine stoppt

Anzahl der Antworten 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