„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum verschwindet meine Goroutine-Ausgabe unter Windows?

Warum verschwindet meine Goroutine-Ausgabe unter Windows?

Veröffentlicht am 11.11.2024
Durchsuche:354

Why Does My Goroutine Output Disappear on Windows?

Goroutine-Ausführung unter Windows: Fehlerbehebung bei stillem Fehler

Ein einfacher Test mit Goroutinen zeigt unerwartetes Verhalten unter Windows, da die erwartete Ausgabe nicht erzeugt wird . Das Problem entsteht, weil die Hauptfunktion nicht auf den Abschluss der Goroutine wartet, bevor sie beendet wird.

Go Awaits

Wenn eine Goroutine mit dem Schlüsselwort „go“ gestartet wird, Es wird gleichzeitig mit der Hauptfunktion ausgeführt. Die Ausführung der Hauptfunktion wird jedoch nicht angehalten und auf den Abschluss der aufgerufenen Goroutinen gewartet. Folglich wird die Hauptfunktion beendet, wodurch die Goroutine möglicherweise außerplanmäßig bleibt.

Abhilfemaßnahmen

Um sicherzustellen, dass die Goroutine die Möglichkeit hat, ihre Ausgabe auszuführen und zu drucken, wird die Hauptfunktion ausgeführt Die Funktion muss so geändert werden, dass sie einige Zeit wartet. Dies kann mit dem Paket „time“ und der Funktion „Sleep“ erreicht werden. Durch die Einführung einer Ruhezeit gibt die Hauptfunktion der Goroutine die Möglichkeit, vor dem Beenden zu laufen und eine Ausgabe zu erzeugen.

Geänderter Code

Der folgende geänderte Code behebt das Problem durch Hinzufügen einer Ruhezeit von 10 Sekunden am Ende der Hauptfunktion:

package main

import (
    "fmt"
    "time"
)

func test() {
    fmt.Println("test")
}

func main() {
    go test()
    time.Sleep(10 * time.Second)
}

Ausgabe

Der geänderte Code erzeugt nun die erwartete Ausgabe:

test

Diese Änderung ermöglicht das Warten der Hauptfunktion Geben Sie ihr nach dem Start der Goroutine genügend Zeit, die „Test“-Meldung auszuführen und auszudrucken, bevor das Programm beendet wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3