ubuntu

Ubuntu下Golang并发编程如何实现

小樊
41
2025-07-11 14:41:17
栏目: 编程语言

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

  1. 首先,确保你已经安装了Go。如果没有,请访问https://golang.org/dl/ 下载并安装适用于Ubuntu的Go版本。

  2. 创建一个名为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秒)。

  1. 在终端中,导航到包含main.go文件的目录,并运行以下命令来执行程序:
go run main.go
  1. 观察输出结果,你会看到所有goroutine几乎同时开始和结束,这表明它们是并发执行的。

这个示例展示了如何在Go中使用goroutines和WaitGroup实现并发编程。你可以根据自己的需求调整代码,例如使用通道(channels)在不同goroutine之间传递数据。

0
看了该问题的人还看了