在Ubuntu下使用Golang进行并发编程,主要依赖于Go语言的轻量级线程(goroutines)和通道(channels)。以下是一个简单的示例,展示了如何在Go中实现并发编程:
首先,确保你已经安装了Go。如果没有,请访问https://golang.org/dl/ 下载并安装适用于Ubuntu的Go版本。
创建一个名为main.go的文件,并在其中编写以下代码:
package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup for i := 0; i < 5; i++ { wg.Add(1) // 增加WaitGroup的计数器 go func(id int) { defer wg.Done() // 在goroutine完成时减少WaitGroup的计数器 fmt.Printf("Goroutine %d starting\n", id) time.Sleep(2 * time.Second) // 模拟耗时操作 fmt.Printf("Goroutine %d finished\n", id) }(i) } wg.Wait() // 等待所有goroutine完成 fmt.Println("All goroutines finished") } 在这个示例中,我们使用了sync.WaitGroup来确保主函数等待所有goroutine完成。我们创建了5个goroutine,每个goroutine都会打印开始和结束的消息,并在中间模拟耗时操作(2秒)。
main.go文件的目录,并运行以下命令来执行程序:go run main.go 这个示例展示了如何在Go中使用goroutines和WaitGroup实现并发编程。你可以根据自己的需求调整代码,例如使用通道(channels)在不同goroutine之间传递数据。