温馨提示×

go语言for循环能并发执行吗

小樊
81
2024-12-07 19:27:48
栏目: 编程语言

在Go语言中,for循环本身不能直接并发执行。但是,你可以使用Go的并发特性(如goroutines和channels)来实现类似的功能。

例如,你可以使用go关键字在一个新的goroutine中执行for循环的部分代码,从而实现并发执行。这里有一个简单的例子:

package main

import (
	"fmt"
	"sync"
)

func main() {
	var wg sync.WaitGroup

	for i := 0; i < 10; i++ {
		wg.Add(1)
		go func(i int) {
			defer wg.Done()
			fmt.Printf("Goroutine %d: %d\n", i, i*2)
		}(i)
	}

	wg.Wait()
}

在这个例子中,我们创建了一个包含10个元素的数组,并使用go关键字为每个元素创建了一个新的goroutine。这些goroutine将并发地执行fmt.Printf语句。sync.WaitGroup用于等待所有goroutine完成。

需要注意的是,这个例子中的for循环并没有真正并发执行,而是创建了10个goroutines。要真正实现并发执行,你需要在for循环内部使用同步原语(如互斥锁、通道等)来控制对共享资源的访问。

0