package
0.0.0-20230323042840-e89c2789cb92
Repository: https://github.com/darabuchi/utils.git
Documentation: pkg.go.dev
# README
gpool
一个管理协程池和对协程池进行资源分配的工具包
推荐在需要进行全局资源分配的需求中使用,会做协程资源的释放和重分配,所以同时不推荐在固定协程资源的需求中使用
使用方式
后台持续运行的协程池
package main
import (
"github.com/darabuchi/utils/gpool"
)
func main() {
pool := gpool.NewPoolGlobalWithFunc("test_pool", 5, func(i interface{}) {
log.Info(i)
})
pool.SetAlways()
pool.Submit(1)
}
关心执行结果
package main
import (
"github.com/darabuchi/utils/gpool"
)
func main() {
pool := gpool.NewPoolGlobalWithFunc("test_pool", 5, func(i interface{}) {
log.Info(i)
})
defer pool.Close()
pool.SetAlways()
pool.Submit(1)
pool.Wait()
}
修改系统内的协程限制
package main
import (
"github.com/darabuchi/utils/gpool"
)
func main() {
gpool.SetPoolGlobalMaxWorker(3)
}
同一个协程池下的子任务
package main
import (
"github.com/darabuchi/utils/gpool"
)
func main() {
pool := gpool.NewPoolGlobalWithFunc("test_pool", 5, func(i interface{}) {
log.Info(i)
})
subPool := pool.NewSubPool("test_sub_pool")
subPool.Submit(1)
subPool.SubmitWithFunc(2, func(i interface{}) {
log.Infof("sub_pool %d", i)
})
subPool.Wait()
}
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Type aliases
No description provided by the author