商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS下Golang并发模型如何实现

CentOS下Golang并发模型如何实现

  发布于2026-07-18 阅读(0)

扫一扫,手机访问

在 CentOS 上折腾 Golang 并发模型,其实主要就是靠两个好东西:goroutines 和 channels。goroutines 是 Go 语言里的轻量级线程,能让你同时跑多个任务;channels 则负责在它们之间传递数据。下面直接上一个简单的例子,看看在 CentOS 下怎么把并发模型跑起来。

CentOS下Golang并发模型如何实现

  1. 第一步自然是装好 Golang。如果还没装,去官网(https://golang.org/dl/)下载 CentOS 对应的安装包,装完就行。

  2. 新建一个文件,比如 concurrency_example.go,把下面这段代码贴进去:

package main

import (
    "fmt"
    "sync"
    "time"
)

func worker(id int, wg *sync.WaitGroup) {
    defer wg.Done()
    fmt.Printf("Worker %d starting\n", id)
    time.Sleep(time.Second)
    fmt.Printf("Worker %d done\n", id)
}

func main() {
    var wg sync.WaitGroup
    for i := 1; i <= 5; i++ {
        wg.Add(1)
        go worker(i, &wg)
    }
    wg.Wait()
    fmt.Println("All workers done")
}

这个示例里,我们定义了一个叫 worker 的函数,它接收一个整数 ID 和一个指向 sync.WaitGroup 的指针。函数内部会打印开始和结束的消息,中间停一秒,模拟一个耗时任务。

main 函数中,我们用 sync.WaitGroup 来等所有 goroutines 跑完。循环里创建了 5 个 goroutines,每个都调用 worker,并把 WaitGroup 的指针传进去。最后 wg.Wait() 会阻塞,直到每个 goroutine 都调用了 wg.Done()

  1. 在终端里,进入这个文件所在的目录,运行下面的命令编译并执行:

go build concurrency_example.go
./concurrency_example
  1. 观察输出,你会看到 5 个 worker 几乎同时启动,然后分别打印“done”,最后输出“All workers done”。

简而言之,这就是在 CentOS 上玩转 Golang 并发模型的基础套路。代码到手后,你可以按需扩展,比如用 channel 在 goroutine 之间传数据,玩法很多。

本文转载于:https://www.yisu.com/ask/9677308.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注