"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que minha saída Goroutine desaparece no Windows?

Por que minha saída Goroutine desaparece no Windows?

Publicado em 2024-11-11
Navegar:353

Why Does My Goroutine Output Disappear on Windows?

Execução de goroutine no Windows: solução de problemas de falha silenciosa

Um teste simples envolvendo goroutines mostra um comportamento inesperado no Windows, pois a saída esperada não é produzida . O problema surge porque a função principal não espera a conclusão da goroutine antes de terminar.

Go Awaits

Quando uma goroutine é iniciada usando a palavra-chave "go", ele é executado simultaneamente com a função principal. Porém, a execução da função principal não pausa e aguarda a conclusão das goroutines invocadas. Consequentemente, a função principal é encerrada, potencialmente deixando a goroutine não programada.

Medidas Corretivas

Para garantir que a goroutine tenha a oportunidade de executar e imprimir sua saída, a principal a função deve ser modificada para aguardar algum tempo. Isto pode ser conseguido usando o pacote "time" e a função "Sleep". Ao introduzir um tempo de suspensão, a função principal dá à goroutine a chance de executar e produzir saída antes de terminar.

Código Modificado

O código modificado a seguir resolve o problema adicionando um tempo de suspensão de 10 segundos ao final da função principal:

package main

import (
    "fmt"
    "time"
)

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

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

Output

O código modificado agora produz a saída esperada:

test

Esta modificação permite que a função principal espere após iniciar a goroutine, dando-lhe tempo suficiente para executar e imprimir a mensagem "teste" antes que o programa termine.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3