linux

Golang如何在Linux上实现并发

小樊
41
2025-06-29 08:59:50
栏目: 编程语言

在Go语言(Golang)中,实现并发主要依赖于两个关键字:goroutinechannelgoroutine 是Go语言中的轻量级线程,而 channel 则用于在 goroutine 之间传递数据。

以下是一个简单的示例,展示了如何在Linux上使用Golang实现并发:

package main

import (
	"fmt"
	"time"
)

func printNumbers() {
	for i := 1; i <= 5; i++ {
		fmt.Printf("Number: %d\n", i)
		time.Sleep(1 * time.Second)
	}
}

func printLetters() {
	for i := 'A'; i <= 'E'; i++ {
		fmt.Printf("Letter: %c\n", i)
		time.Sleep(1 * time.Second)
	}
}

func main() {
	go printNumbers() // 创建一个新的goroutine来执行printNumbers函数
	go printLetters() // 创建一个新的goroutine来执行printLetters函数

	time.Sleep(6 * time.Second) // 等待足够的时间,以便两个goroutine都能完成执行
	fmt.Println("Done")
}

在这个示例中,我们定义了两个函数:printNumbersprintLetters。我们在 main 函数中使用 go 关键字创建了两个新的 goroutine 来并发地执行这两个函数。time.Sleep 函数用于让主线程等待足够的时间,以便两个 goroutine 都能完成执行。

要在Linux上运行此程序,请将代码保存到一个文件(例如 concurrency.go),然后在终端中运行以下命令:

go run concurrency.go

这将编译并运行程序,您将看到数字和字母交替打印出来,表明两个函数正在并发执行。

0
看了该问题的人还看了