西京刀客++golang常用库
时间: 2023-11-23 08:06:46 浏览: 183
西京刀客++,感谢您的提问。下面是关于golang常用库之ants包的介绍和使用示例:
ants是一个golang协程池(goroutine池)库,可以用于复用goroutine,节省资源,提升性能。它可以限制goroutine的数量,避免goroutine泄漏和过度消耗系统资源。ants包提供了一个简单的API,可以轻松地创建和管理goroutine池。
以下是一个使用ants包的示例:
```go
package main
import (
"fmt"
"sync"
"time"
"github.com/panjf2000/ants/v2"
)
func main() {
// 创建一个goroutine池,最大容量为5
pool, _ := ants.NewPool(5)
defer pool.Release()
var wg sync.WaitGroup
for i := 0; i < 10; i++ {
wg.Add(1)
// 将任务提交到goroutine池中
pool.Submit(func() {
defer wg.Done()
fmt.Println("Hello, ants!")
time.Sleep(time.Second)
})
}
wg.Wait()
}
```
在上面的示例中,我们首先创建了一个goroutine池,最大容量为5。然后,我们使用`pool.Submit()`方法将10个任务提交到goroutine池中。每个任务都会打印一条消息并休眠1秒钟。最后,我们使用`sync.WaitGroup`等待所有任务完成。
阅读全文