首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go
订阅
小奇奇
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
Go组件学习——database/sql数据库连接池你用对了吗
这里maxOpenConns设置为10,足够这里的两次查询使用了。 之所以阻塞,是因为拿不到连接,可用的连接一直被上一次查询占用了。 除了maxOpenConns=1以外,这里多了rows遍历的代码。 显然,这里第二次查询并没有阻塞,而是拿到了连接并查到了结果。 所以,这里ro…
golang中interface底层分析
golang中的接口分为带方法的接口和空接口。 带方法的接口在底层用iface表示,空接口的底层则是eface表示。下面我们透过底层分别看一下这两种类型的接口原理。 从以上实现我们发现编译器生成的struct原始数据会复制一份,然后将新的数据地址赋值给iface.data从而生…
深度解密Go语言之channel
大家都知道著名的摩尔定律。1965 年,时任仙童公司的 Gordon Moore 发表文章,预测在未来十年,半导体芯片上的晶体管和电阻数量将每年增加一倍;1975 年,Moore 再次发表论文,将“每年”修改为“每两年”。这个预测在 2012 年左右基本是正确的。 但随着晶体管…
深入理解 Go 语言的垃圾回收
我们在上一节中详细介绍了 Go 语言内存分配器的设计与实现原理,分析了运行时内存管理组件之间的关系以及不同类型对象的分配原理,然而编程语言的内存管理系统除了负责堆内存的分配之外,它还需要负责回收不再使用的对象和内存空间,这部分职责就是由本节即将介绍的垃圾收集器完成的。 在几乎所…
Golang连接池的几种实现案例
因为TCP的三只握手等等原因,建立一个连接是一件成本比较高的行为。所以在一个需要多次与特定实体交互的程序中,就需要维持一个连接池,里面有可以复用的连接可供重复使用。 而维持一个连接池,最基本的要求就是要做到:thread safe(线程安全),尤其是在Golang这种特性是go…
Go 每日一库之 wire
之前的一篇文章Go 每日一库之 dig介绍了 uber 开源的依赖注入框架dig。读了这篇文章后,@overtalk推荐了 Google 开源的wire工具。所以就有了今天这篇文章,感谢推荐👍 wire是 Google 开源的一个依赖注入工具。它是一个代码生成器,并不是一个框…
Go 语言反射的实现原理
反射是 Go 语言比较重要的一个特性之一,虽然在大多数的应用和服务中并不常见,但是很多框架都依赖 Go 语言的反射机制实现一些动态的功能。作为一门静态语言,Golang 在设计上都非常简洁,所以在语法上其实并没有较强的表达能力,但是 Go 语言为我们提供的 reflect 包提…
gRPC 从学习到生产
答案就是:SOAP……好吧,开个玩笑,当然不可能是 SOAP 了。 Alan 说“如果这辈子再也不写另一个 REST 客户端库的话,那就可以很幸福的死去了……😂”,因为这是最无聊的事情,一遍一遍的在做同样的事情。 与其讲解定义,不如来实际做个东西更清楚。 使用 gRPC 这类…