首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go语言
订阅
agustins
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
看了Kubernetes 源码后,我学到的封装方法
通过阅读Kubernetes 的源代码,可以从中学习到许多编码封装的技巧,来将我们的业务代码写的更加简洁易懂。
strings.Builder 源码分析
众所周知,Go 里面的字符串是常量,对字符串的修改会重新申请内存地址。为了优化这个,我之前都是用 bytes.Buffer 代替字符串的拼接等操作。这种方案避免了字符串修改过程中的内存申请,但是最后从[]byte转成字符串时会重新内存申请,这个无法避免。从 Go 1.10 开始…
GO千万级消息推送服务
公司此前有一个简单的文章订阅业务,但是采用的是定时拉取的模式,周期比较长,时效性不佳。于是考虑做一个长连接服务,主动把新产生的文章推送下去。 因为是web场景,所以优先考虑成熟的websocket协议,很多编程语言都有成熟的服务端开发框架。 假设有100万人在线,那么1篇文章…
【Go并发编程】第二篇 - Goroutines和Channels
Goroutine是Go中最基本的执行单元。事实上每一个Go程序至少有一个goroutine:主goroutine。当程序启动时,它会自动创建。 事实上goroutine采用了一种fork-join的模型。 goroutine是Go语言的基本调度单位,而channels则是它们…
Go 切片使用注意事项
可以看到 Value-Addr 跟 ElemAddr 的地址是不同的,印证了上面的说法。而每次迭代的变量的地址是相同的,说明迭代过程复用了这个变量,也是一种防止内存浪费的做法。 其中第一维可以看成长度为 2,容量为 2 的保存了切片类型的切片,第二维则是整形切片。
【译】Go语言之声明语法
Go 的初学者可能会有这样的疑问:为什么 Go 的声明语法与传统的其他 C 家族编程语言不太一样?在这篇文章中我们会比较这两种不同的方式,并且也会解释为什么。 首先,让我们说说 C 中的语法。C 使用了一种不寻常的巧妙的方法来实现声明语法。我们不是用什么特殊的语法来描述类型,而…
分析go中slice的奇怪现象
可以看到,片段一和片段二中s1和s2输出不一致。 初看起来,感觉是fmt.Println(s1,"=====",s2)这句话导致了结果的不一样。 具体原因,且看下面分解。 对于片段二,结果都是b,这个似乎是因为append的时候,赋值给了一个新的变量,导致了s指向的底层数据虽然…
Golang 的 协程调度机制 与 GOMAXPROCS 性能调优
Golang 简称 Go,Go 的协程(goroutine) 和我们常见的线程(Thread)一样,拥有其调度器。 全局G任务队列会和各个本地G任务队列按照一定的策略互相交换。没错,就是协程任务交换 如果还有空闲的P,则创建一个M 绑定该 P ,注意!这里,P 此前必须还没绑定…