首页
AI Coding
沸点
课程
直播
活动
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 此前必须还没绑定…