«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему вывод моей горутины исчезает в Windows?

Почему вывод моей горутины исчезает в Windows?

Опубликовано 11 ноября 2024 г.
Просматривать:924

Why Does My Goroutine Output Disappear on Windows?

Выполнение горутины в Windows: устранение неполадок при скрытом сбое

Простой тест с использованием горутин показывает неожиданное поведение в Windows, поскольку ожидаемый результат не создается . Проблема возникает из-за того, что основная функция не ждет завершения горутины перед завершением.

Go Awaits

Когда горутина запускается с использованием ключевого слова "go", он выполняется одновременно с основной функцией. Однако выполнение основной функции не приостанавливается и не ждет завершения вызванных горутин. Следовательно, основная функция завершается, что потенциально может оставить горутину незапланированной. функция должна быть изменена, чтобы подождать некоторое время. Этого можно добиться с помощью пакета «Время» и функции «Сон». Вводя время ожидания, функция main дает горутине возможность запуститься и выдать выходные данные перед завершением.

Модифицированный код

Следующий измененный код решает проблему путем добавление 10-секундного времени ожидания в конец основной функции:

package main импорт ( "ФМТ" "время" ) функциональный тест() { fmt.Println("тест") } функция main() { иди тест() время.Сон(10 * время.Секунда) }

Вывод

package main

import (
    "fmt"
    "time"
)

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

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

testЭта модификация позволяет основной функции ждать после запуска горутины, давая ей достаточно времени для выполнения и печати «тестового» сообщения перед завершением работы программы.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3