MST

星途 面试题库

面试题:Go 中 Go WaitGroup 在简单并发任务同步场景的应用

假设有一个场景,需要启动 5 个 goroutine 来执行相同的任务(例如计算某个数值的平方),并且在所有 goroutine 完成后打印结果。请使用 Go 的 WaitGroup 来实现这个功能,写出完整的代码。
37.4万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "sync"
)

func square(num int, wg *sync.WaitGroup) {
    defer wg.Done()
    result := num * num
    fmt.Printf("Square of %d is %d\n", num, result)
}

func main() {
    var wg sync.WaitGroup
    numbers := []int{1, 2, 3, 4, 5}

    for _, num := range numbers {
        wg.Add(1)
        go square(num, &wg)
    }

    wg.Wait()
    fmt.Println("All goroutines have finished.")
}