温馨提示×

Ubuntu中Golang并发编程怎么写

小樊
31
2025-12-22 12:26:16
栏目: 编程语言

在Ubuntu中编写Golang并发程序,你需要了解Go语言的并发原语,主要是goroutines和channels。下面是一个简单的示例,展示了如何在Ubuntu中使用Golang编写一个并发程序。

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

  2. 创建一个新的Go文件,例如main.go,并打开它。

  3. 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接收数据并处理。

  1. 保存文件并在终端中运行以下命令来编译并运行程序:
go run main.go
  1. 观察程序的输出。你应该看到两个goroutines并发地运行,并在接收到数据时打印出来。

这个示例展示了如何在Ubuntu中使用Golang编写一个简单的并发程序。你可以根据自己的需求修改代码,以实现更复杂的并发逻辑。

0