centos

CentOS下Golang如何实现并发编程

小樊
43
2025-09-20 01:05:21
栏目: 编程语言

在CentOS系统下,使用Golang实现并发编程主要依赖于Go语言的轻量级线程——goroutines和通道(channels)。以下是一个简单的示例,展示了如何在CentOS上使用Golang实现并发编程:

  1. 首先,确保你已经安装了Golang。如果没有,请访问Golang官方网站(https://golang.org/dl/)下载并安装适用于CentOS的安装包。

  2. 创建一个名为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完成执行。

  1. 在终端中,导航到包含concurrency.go文件的目录,并运行以下命令来编译并运行程序:
go build concurrency.go
./concurrency

你应该会看到每隔1秒打印一个数字,直到所有数字都被打印出来。这表明我们的并发程序已成功运行。

这只是一个简单的示例,你可以根据需要修改和扩展它以满足你的需求。Golang提供了许多其他并发编程功能,如互斥锁(mutexes)、条件变量(condition variables)和原子操作(atomic operations),可以帮助你更好地控制并发行为。

0
看了该问题的人还看了