go 语言中的函数与 goroutine 可用于并发编程。函数是线程安全的代码块,可同时被多个 goroutine 调用。goroutine 是轻量级线程,在用户空间运行,并可共享内存。示例是创建 10 个 goroutine 打印数字,使用 sync.waitgroup 确保所有 goroutine 完成。通过函数和 goroutine,go 语言实现了并发编程的简单性和高效性。
Go 函数与 Goroutine 在并发编程中的应用
Go 语言提供了一系列强大的特性来支持并发编程,其中函数和 Goroutine 是最基本的构建块。
函数
Go 函数是执行特定任务的代码块。与其他语言不同,Go 函数是并发安全的,这意味着它们可以同时由多个 Goroutine 调用,而不会产生数据竞争或其他线程安全问题。
Goroutine
Goroutine 是一个轻量级线程,它与线程不同之处在于,Goroutine 在用户空间中运行,这使得它们比线程更加轻量且高效。Goroutine 可以同时与其他 Goroutine 共享内存,从而实现并发编程。
实战案例
以下是一个使用函数和 Goroutine 进行并发处理的示例:
package main import ( "fmt" "sync" ) var wg sync.WaitGroup func main() { // 创建 10 个 Goroutine,每个 Goroutine 输出一个数字 for i := 0; i < 10; i++ { wg.Add(1) go printNumber(i) } // 等待所有 Goroutine 完成 wg.Wait() } func printNumber(n int) { defer wg.Done() fmt.Println(n) }