chatGPT生成代码--go启动多线程

提问:用golang写一个启动函数 createTask(names[]string), 函数功能:启动n个线程,线程数为names的长度,线程名称为names的值,需要等待所有线程启动完成后才执行函数返回

代码:以下是一个使用Golang编写的 createTask 函数,它会启动与names切片中的名称数量相等的goroutine,并等待它们全部启动完成后才会返回:

package main

import (
	"fmt"
	"sync"
)

func createTask(names []string) {
	var wg sync.WaitGroup

	for _, name := range names {
		wg.Add(1)

		go func(n string) {
			defer wg.Done()
			fmt.Printf("线程 %s 启动n", n)
			// 在这里可以执行线程需要做的工作
		}(name)
	}

	wg.Wait() // 等待所有线程完成
	fmt.Println("所有线程已启动完成,函数返回")
}

func main() {
	names := []string{"Thread1", "Thread2", "Thread3"}

	createTask(names)
}