Go语言的协程池

letsfire · · 2412 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

Go语言的协程池 , 节省内存 , 减少GC压力 项目地址:[https://github.com/letsfire/factory.git](https://github.com/letsfire/factory) ## 安装 `go get github.com/letsfire/factory` ## 用法 ```go // 新建协程池,最大允许协程数20000和初始化数量8 // 协程工人繁忙不够用的情况下 , 内部实现自动扩容 // 扩容不会超过您指定的最大允许协程数量 var master = factory.NewMaster(20000, 8) // 新建第一条工作流水线 var line1 = master.AddLine("demo.line.1", func(args interface{}) { // TODO 处理您的业务逻辑 // fmt.Println(args...) }) // 新建第二条工作流水线 var line2 = master.AddLine("demo.line.2", func(args interface{}) { // TODO 处理您的业务逻辑 // fmt.Println(args...) }) // 根据业务场景将参数提交 for i := 0; i < 100000; i++ { line1.Submit(i) } for j := 0; j < 100000; j++ { line2.Submit(j) } // 协程池数量可动态调整 master.Running() // 正在运行的协程工人数量 master.AdjustSize(100) // 指定数量进行扩容或缩容 master.Shutdown() // 等于 master.AdjustSize(0) ```

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2412 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传