MST

星途 面试题库

面试题:Go语言中如何使用Goroutine实现简单的批量任务处理

假设有一个整数切片,每个整数代表一个任务的参数,你需要使用Goroutine并发处理这些任务,任务内容是计算每个参数的平方值,并最终返回所有计算结果。请编写相应的Go代码实现该功能。
36.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func squareTask(num int, resultChan chan int) {
    resultChan <- num * num
}

func main() {
    tasks := []int{1, 2, 3, 4, 5}
    resultChan := make(chan int, len(tasks))

    for _, task := range tasks {
        go squareTask(task, resultChan)
    }

    results := make([]int, 0, len(tasks))
    for i := 0; i < len(tasks); i++ {
        results = append(results, <-resultChan)
    }

    close(resultChan)
    fmt.Println(results)
}