【问题标题】:How to have more than 1 goroutine in terms of functions and control them competently?如何在功能方面拥有超过 1 个 goroutine 并有效地控制它们?
【发布时间】:2022-11-27 10:17:08
【问题描述】:

我正在制作一个订阅个人资料和取消订阅的机器人。有一个进行订阅的功能和一个检查它是否真的通过 Gocolly 工作的功能。我希望它在多线程中工作,用户选择的线程数一样多,但我不知道该怎么做。我了解 go func 的工作原理,但了解如何为 1 个函数运行多个 goroutine,以便它们能够相互通信。我已经积累了有关 Worker pool 的信息,但尚未了解其工作原理

【问题讨论】:

标签: multithreading algorithm go goroutine


【解决方案1】:

这是 go worker 池的一个很好的例子:https://gobyexample.com/worker-pools

您可以通过循环调用 go 例程来启动多个工作人员

for w := 1; w <= 3; w++ {
    go worker(w, jobs, results)
}

上面的示例还显示了使用 go channels 在线程之间进行的简单通信。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多