以下是使用 GoFrame 中的 gpool 模块的基本示例。在这个示例中,我们将创建一个对象池,向池中添加一些任务,然后等待这些任务完成。
package main

import (
"fmt"
"github.com/gogf/gf/container/gpool"
"time"
)

func main() {
// 创建一个对象池,最大容量为 5
pool := gpool.New(5)
defer pool.Close() // 在程序结束时关闭对象池

// 向对象池添加任务
for i := 0; i < 10; i++ {
taskID := i
pool.Add(func() {
// 模拟任务执行
fmt.Printf("Task %d is executed\n", taskID)
time.Sleep(time.Second)
})
}

// 等待所有任务完成
pool.Wait()
fmt.Println("All tasks completed.")
}

在上述示例中,我们首先创建了一个最大容量为 5 的对象池。然后,使用循环向对象池中添加 10 个任务,每个任务执行时会打印一条消息并休眠 1 秒。

最后,我们调用 pool.Wait() 等待所有任务完成,并输出一条消息表示所有任务已经完成。在实际应用中,你可以根据需要设置更多的配置,例如设置对象的过期时间、是否预先分配对象等。

请确保在实际应用中适当地调整对象池的容量和其他配置参数,以满足你的性能和资源需求。


转载请注明出处:http://www.zyzy.cn/article/detail/7724/GoFrame