在Go语言(Golang)中,实现并发主要依赖于两个关键字:goroutine
和 channel
。goroutine
是Go语言中的轻量级线程,而 channel
则用于在 goroutine
之间传递数据。下面是一个简单的示例,展示了如何在Debian上使用Go语言实现并发。
首先,确保你已经在Debian上安装了Go语言。如果还没有安装,可以通过以下命令安装:
sudo apt-get update
sudo apt-get install golang-go
接下来,创建一个名为 main.go
的文件,并添加以下代码:
package main
import (
"fmt"
"sync"
"time"
)
func printNumbers(wg *sync.WaitGroup) {
defer wg.Done()
for i := 1; i <= 5; i++ {
fmt.Printf("Number: %d\n", i)
time.Sleep(1 * time.Second)
}
}
func main() {
var wg sync.WaitGroup
wg.Add(1) // 增加WaitGroup的计数器
go printNumbers(&wg) // 创建一个新的goroutine来执行printNumbers函数
wg.Wait() // 等待所有的goroutine完成
fmt.Println("All goroutines finished.")
}
在这个示例中,我们定义了一个名为 printNumbers
的函数,它接受一个指向 sync.WaitGroup
的指针作为参数。在函数内部,我们使用 defer
语句确保在函数返回之前调用 wg.Done()
来减少 WaitGroup
的计数器。
在 main
函数中,我们创建了一个 sync.WaitGroup
实例,并通过调用 wg.Add(1)
来增加计数器。然后,我们使用 go
关键字创建一个新的 goroutine
来执行 printNumbers
函数。最后,我们调用 wg.Wait()
等待所有的 goroutine
完成。
要运行此示例,请在终端中导航到包含 main.go
文件的目录,并执行以下命令:
go run main.go
你将看到每隔一秒钟打印一个数字,直到所有数字都打印完毕。这就是在Debian上使用Go语言实现并发的一个简单示例。你可以根据需要修改和扩展此示例以满足你的需求。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: sqlplus在debian上的常见问题