登录
首页 >  Golang >  Go教程

Golang 函数如何使用 Go 协程来并发执行任务?

时间:2024-10-25 15:33:55 374浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《Golang 函数如何使用 Go 协程来并发执行任务?》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

Golang 函数如何使用 Go 协程来并发执行任务?

使用 Go 协程实现并发任务

在 Go 语言中,协程(又称 goroutine)是一种轻量级线程,它允许程序并发执行任务。这对于编写高并发、高性能程序至关重要。

创建协程

创建协程非常简单,只需使用 go 关键字即可。例如:

go func() {
  fmt.Println("Hello from a goroutine!")
}()

这段代码创建一个协程,该协程将打印 "Hello from a goroutine!"。

等待协程完成

如果需要等待协程完成,可以使用 sync.WaitGroupWaitGroup 允许程序等待多个协程完成。例如:

var wg sync.WaitGroup
wg.Add(1)

go func() {
  defer wg.Done()
  fmt.Println("Hello from a goroutine!")
}()

wg.Wait()

wg.Add(1) 告诉 WaitGroup 将等待一个协程完成。defer wg.Done() 会在协程完成时调用 wg.Done(),向 WaitGroup 信号协程已完成。

实战案例

以下是一个使用协程并行执行任务的实战案例:

package main

import (
  "fmt"
  "sync"
)

func main() {
  const numTasks = 10

  var wg sync.WaitGroup
  wg.Add(numTasks)

  for i := 0; i < numTasks; i++ {
    go func(taskNum int) {
      defer wg.Done()
      fmt.Printf("Task %d completed\n", taskNum)
    }(i)
  }

  wg.Wait()
}

这段代码创建了 10 个并发任务,每个任务都打印一个消息。WaitGroup 用于确保主程序在所有任务完成之前不会退出。

通过使用协程,这个程序可以并发执行 10 个任务,从而提高性能。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>