温馨提示×

Ubuntu下Golang如何进行并发编程

小樊
40
2025-12-30 07:32:48
栏目: 编程语言

在Go语言中,实现并发编程主要依赖于两个关键字:goroutinechannelgoroutine 是一种轻量级的线程,可以在程序中同时运行多个任务。channel 是用于在 goroutine 之间传递数据的通道。

下面是一个简单的示例,展示了如何在Ubuntu下的Go程序中使用 goroutinechannel 进行并发编程:

  1. 首先,确保你已经安装了Go语言环境。如果没有,请访问 Go官方下载页面 下载并安装。

  2. 创建一个名为 main.go 的文件,并输入以下代码:

package main

import (
	"fmt"
	"time"
)

func printNumbers(c chan int) {
	for i := 1; i <= 5; i++ {
		c <- i // 将数字发送到通道
		time.Sleep(time.Second)
	}
	close(c) // 关闭通道
}

func printLetters(c chan string) {
	for _, letter := range "ABCDE" {
		c <- string(letter) // 将字母发送到通道
		time.Sleep(1 * time.Second)
	}
	close(c) // 关闭通道
}

func main() {
	numberChannel := make(chan int)
	letterChannel := make(chan string)

	go printNumbers(numberChannel)   // 启动printNumbers goroutine
	go printLetters(letterChannel) // 启动printLetters goroutine

	for {
		select {
		case num := <-numberChannel:
			fmt.Println("Number:", num)
		case letter := <-letterChannel:
			fmt.Println("Letter:", letter)
		}

		// 当两个通道都关闭时,跳出循环
		if len(numberChannel) == 0 && len(letterChannel) == 0 {
			break
		}
	}
}
  1. 在终端中,导航到包含 main.go 文件的目录,并运行以下命令:
go run main.go
  1. 你将看到程序同时打印数字和字母,这是由于 goroutinechannel 的并发特性。

这只是一个简单的示例,你可以根据自己的需求修改代码,实现更复杂的并发编程。

0