发布于2026-07-04 阅读(0)
扫一扫,手机访问
在Ubuntu环境下用Golang做并发编程,其实比想象中要清爽得多。Go语言原生自带的goroutine(轻量级线程)和channel(通道)两个核心工具,基本把并发开发的门槛降到了“开箱即用”的程度。下面直接上实操步骤,配合代码跑一遍,很快就能上手。

第一步,装好Go环境。Ubuntu上装Golang最省事的方式就是走apt:
sudo apt-get update
sudo apt-get install golang-go
装完后可以用 go version 验证一下。
第二步,新建一个Go程序文件,比如就叫 main.go。用你喜欢的文本编辑器打开,开始写代码。
第三步,先引入必要的包。这里我们用到两个:fmt用于输出,sync用于同步多个goroutine——不然主线程跑完了,goroutine可能还没执行完。
package main
import (
"fmt"
"sync"
)
第四步,编写一个要在goroutine里运行的函数。这里写一个简单的打印数字函数,从1到10。注意函数签名里要带上 *sync.WaitGroup 指针,这样才能通知主线程“我干完了”。
func printNumbers(wg *sync.WaitGroup) {
defer wg.Done() // 函数结束时调用Done,相当于告诉WaitGroup:我完成了
for i := 1; i <= 10; i++ {
fmt.Printf("Number: %d\n", i)
}
}
第五步,在 main 函数里启动goroutine。先创建一个 sync.WaitGroup 实例,调用 Add(1) 表示要等待一个goroutine。然后用 go printNumbers(&wg) 启动它。最后 wg.Wait() 会让主线程阻塞在这里,直到所有注册的goroutine都执行完 Done()。
func main() {
var wg sync.WaitGroup
wg.Add(1)
go printNumbers(&wg)
wg.Wait()
}
第六步,运行看看效果:
go run main.go
终端里会依次打印出1到10的数字。虽然这个例子很简单,但它背后已经体现了Go并发编程的两个核心思路:通过 go 关键字让函数并发执行,通过 WaitGroup 协调多个并发任务的完成时机。实际项目中,你往往还需要用channel来在goroutine之间传递数据,避免共享内存带来的竞态问题。但万变不离其宗,先把这套基础跑通,后续无论是处理Web请求、批量任务还是后台服务,都能快速迁移过去。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8