赞
踩
提问:用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)
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。