是的,Go语言支持并发编程。Go语言的一个显著特点就是其内置的并发支持。Go语言使用goroutines和channels来实现并发编程。
go关键字即可。例如:package main import ( "fmt" "time" ) func printNumbers() { for i := 1; i <= 5; i++ { fmt.Printf("%d ", i) time.Sleep(1 * time.Second) } } func main() { go printNumbers() time.Sleep(6 * time.Second) } 在这个例子中,我们创建了一个名为printNumbers的goroutine,它会每隔一秒打印一个数字。在main函数中,我们通过go关键字启动了这个goroutine,并让主线程等待6秒,以确保printNumbers函数有足够的时间执行。
ch := make(chan int) 这里我们创建了一个名为ch的整数类型channel。我们可以使用<-操作符在goroutines之间发送和接收数据。例如:
package main import ( "fmt" "time" ) func sendNumbers(ch chan int) { for i := 1; i <= 5; i++ { ch <- i // 发送数据到channel time.Sleep(1 * time.Second) } close(ch) // 关闭channel } func main() { ch := make(chan int) go sendNumbers(ch) for num := range ch { // 从channel接收数据 fmt.Printf("%d ", num) } } 在这个例子中,我们创建了一个名为sendNumbers的goroutine,它会每隔一秒发送一个数字到channel。在main函数中,我们创建了一个channel,并启动sendNumbers goroutine。然后,我们使用for循环从channel接收数据,直到channel被关闭。
Go语言的并发模型使得编写高性能、可扩展的并发程序变得简单而高效。