在Ubuntu中编写Golang并发程序,你需要了解Go语言的并发原语,主要是goroutines和channels。下面是一个简单的示例,展示了如何在Ubuntu中使用Golang编写一个并发程序。
首先,确保你已经安装了Golang。如果没有,请访问https://golang.org/dl/ 下载并安装适用于Ubuntu的Golang版本。
创建一个新的Go文件,例如main.go,并打开它。
在main.go文件中,编写以下代码:
package main
import (
"fmt"
"sync"
"time"
)
func main() {
var wg sync.WaitGroup
// 创建一个channel,用于在goroutines之间传递数据
dataChan := make(chan int)
// 启动一个goroutine,用于向channel发送数据
wg.Add(1)
go func() {
defer wg.Done()
for i := 0; i < 5; i++ {
dataChan <- i
time.Sleep(1 * time.Second)
}
close(dataChan)
}()
// 启动另一个goroutine,用于从channel接收数据并处理
wg.Add(1)
go func() {
defer wg.Done()
for data := range dataChan {
fmt.Println("Received data:", data)
}
}()
// 等待所有goroutines完成
wg.Wait()
fmt.Println("All goroutines finished.")
}
在这个示例中,我们使用了sync.WaitGroup来等待所有goroutines完成。我们还创建了一个名为dataChan的channel,用于在goroutines之间传递数据。我们启动了两个goroutines:一个用于向channel发送数据,另一个用于从channel接收数据并处理。
go run main.go
这个示例展示了如何在Ubuntu中使用Golang编写一个简单的并发程序。你可以根据自己的需求修改代码,以实现更复杂的并发逻辑。