Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpGrPrm 156 of 280 menu
◀ ▶

Практика на горутины в Go

Дан следующий код:

func hello() { fmt.Println("hi") }

Запустите hello отдельной веткой и дождитесь печати перед выводом "bye".

Дан следующий код:

func twice(wg *sync.WaitGroup) { defer wg.Done() fmt.Println("run") }

Дважды запустите twice и дождитесь обеих веток.

Дан следующий код:

for j := 1; j <= 2; j++ { go func() { fmt.Println(j) }() }

Оформите цикл с ожиданием двух веток и скажите, какие числа должны появиться на экране в Go 1.27.

Дан следующий код:

func main() { go func() { panic("boom") }() }

Скажите, успеет ли main завершиться спокойно без ожидания и без перехвата внутри ветки.

Даны функции:

func a(wg *sync.WaitGroup) { defer wg.Done() fmt.Println("A") } func b(wg *sync.WaitGroup) { defer wg.Done() fmt.Println("B") }

Запустите a и b параллельно и дождитесь обеих перед печатью "end".

Дан следующий код:

count := runtime.GOMAXPROCS(0) var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func() { defer wg.Done() }() } wg.Wait()

Скажите, равно ли count числу запущенных веток в этом фрагменте.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить