在CentOS系统下,使用Golang实现并发编程主要依赖于Go语言的轻量级线程——goroutines和通道(channels)。以下是一个简单的示例,展示了如何在CentOS上使用Golang实现并发编程:
首先,确保你已经安装了Golang。如果没有,请访问Golang官方网站(https://golang.org/dl/)下载并安装适用于CentOS的安装包。
创建一个名为concurrency.go的文件,并在其中编写以下代码:
package main
import (
"fmt"
"sync"
"time"
)
func printNumbers(wg *sync.WaitGroup) {
defer wg.Done()
for i := 1; i <= 5; i++ {
time.Sleep(1 * time.Second)
fmt.Printf("Number: %d\n", i)
}
}
func main() {
var wg sync.WaitGroup
wg.Add(1)
go printNumbers(&wg)
wg.Wait()
fmt.Println("Finished executing goroutines")
}
在这个示例中,我们定义了一个名为printNumbers的函数,它接受一个指向sync.WaitGroup类型的指针作为参数。这个函数会打印从1到5的数字,每次打印之间间隔1秒。
在main函数中,我们创建了一个sync.WaitGroup类型的变量wg,并使用Add方法添加一个等待计数。然后,我们使用go关键字启动一个新的goroutine来执行printNumbers函数,并将wg作为参数传递给它。最后,我们调用wg.Wait()等待所有goroutines完成执行。
concurrency.go文件的目录,并运行以下命令来编译并运行程序:go build concurrency.go
./concurrency
你应该会看到每隔1秒打印一个数字,直到所有数字都被打印出来。这表明我们的并发程序已成功运行。
这只是一个简单的示例,你可以根据需要修改和扩展它以满足你的需求。Golang提供了许多其他并发编程功能,如互斥锁(mutexes)、条件变量(condition variables)和原子操作(atomic operations),可以帮助你更好地控制并发行为。