面:go能不能手写一个简单的协程池?

server/2024/11/9 16:44:55/

最简单的想法是使用chan管道和wg也就是sync.WaitGroup这两个搭档来进行实现协程池

那么在chan管道中最简单的就是无缓冲的了

对于协程池有啥操作?

第一个要想到newPool

并且要明白,这个协程池是不是你叫他停他才能停,如果没说,就让他一直死循环做他应该做的事情

对于这个东西,我们肯定要提交任务给他这是一个submit功能函数

之后是不是还要有一个shutdown函数告诉waitgroup要停止了,结束

有这些之后,那就开始书写

package maintype Job fun()//抽象一点点,就说他是一个函数type Pool struct{//抽象出来一个池子jobChan chan Jobwg sync.WaitGroup
}
func NewPool(size int)* Pool{p:=&Pool{jobChan: make(chan Job)}P.wg.Add(size)for i:=0;i<size;i++{go func(){defer p.wg.Done()for job:=range p.jobChan{//管道只要没关闭,你一直读的话,没东西就阻塞,一直等待job()}}()}  
}func (p *Pool)submit(job Job){p.jobChan<-job
}
func (p *Pool)shutdown(){close(p.jobChan)p.wg.Wait()
}


http://www.ppmy.cn/server/9996.html

相关文章

微信小程序地图polyline坐标太多异常显示BUG

描述 微信小程序map地图上显示polyline线&#xff0c;点位超过1250个出现bug&#xff0c;&#xff08;仅真机上出现&#xff0c;模拟器上正常&#xff09; 这里以加载四川省边界为例, 以下是示例代码 // 读取geojson数据 uni.request({url: https://geo.datav.aliyun.com/a…

PyCharm添加外部工具

QtDesigner 可视化UI设计客户端工具 路径&#xff1a;File | Settings | Tools | External Tools点号&#xff0c;给External Tools组添加一个条目&#xff0c;填写如下内容 Name&#xff1a;QtDesignerProgram&#xff1a;C:\Users\用户名\AppData\Local\Programs\Python\Py…

深入了解直播美颜工具与视频美颜SDK的实现与优化策略

今天&#xff0c;小编将为大家详解视频美颜SDK技术的视线方案与优化策略。 一、美颜工具的实现原理 利用特征提取算法提取人脸的各种特征&#xff0c;如皮肤色调、眼睛大小等。接下来&#xff0c;根据用户设定的美颜参数&#xff0c;对提取的特征进行修改。最后&#xff0c;将…

主流微前端框架对比与选择策略

微前端是一种架构风格&#xff0c;旨在将大型前端应用程序拆分为多个独立的模块&#xff0c;这些模块可以独立开发、测试和部署。主流的微前端框架有以下几种&#xff1a; Single-SPA&#xff1a;Single-SPA 是一个超级父级框架&#xff0c;可以与其他前端框架集成&#xff0c;…

Git忽略文件

.gitignore 添加需要忽略版本控制的文件&#xff0c;因为这个.gitignore配置文件会提交到仓库&#xff0c;所以最常用的是对公共文件的控制。 详情&#xff1a;https://blog.csdn.net/weixin_37909391/article/details/84661340 .git/info/exclude的使用 该文件位于.git/inf…

项目大集成

一 keeplived 高可用 192.168.11.11nginx keeplived192.168.11.12nginx keeplived 两台均编译安装服务器 1 主服务器修改文件&#xff1a; 2 备服务器修改文本 scp keepalived.conf 192.168.11.12:/etc/keepalived/ 3 给主服务器添加虚拟ip ifconfig ens33:0 192.168…

vue3组件封装系列-表单请求

我们在开发一些后台管理系统时&#xff0c;总是会写很多的列表查询页面&#xff0c;如果不封装组件&#xff0c;就会无限的复制粘贴&#xff0c;而且页面很冗余&#xff0c;正常情况下&#xff0c;我们都是要把组件进行二次封装&#xff0c;来达到我们想要效果。这里我分享一下…

Ghost Buster Pro for Mac:强大的系统优化工具

Ghost Buster Pro for Mac是一款功能强大的系统优化工具&#xff0c;专为Mac用户设计&#xff0c;旨在提供全方位的系统清理、优化和维护服务。 Ghost Buster Pro for Mac v3.2.5激活版下载 这款软件拥有出色的垃圾清理能力&#xff0c;能够深度扫描并清除Mac上的无效目录、文件…