首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
go
订阅
myroid
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
深入浅出 Go - sync.Once 源码分析
比较 done 是否等于 0,为什么有的地方用的是 atomic.LoadUint32,有的地方用的却是 o.done。主要原因是 atomic.LoadUint32 可以保证原子读取到 done 值,是并发安全的,而在 doSlow 中,已经加锁了,那么临界区就是并发安全的,…
构建 Golang 应用最小 Docker 镜像
我通常使用docker运行我的 golang 程序,在这里分享一下我构建 docker 镜像的经验。我构建 docker 镜像不仅优化构建后的体积,还要优化构建速度。 使用了多阶段构建,也就是 FROM XXX as xxx ,在构建程序包的时候,使用带编译环境的镜像去构建,运…
Golang的GC性能优化技巧
当slice的容量小于1024时,容量是按照2倍大小增长的。当容量大于1024,增长的容量是原来的1.25倍。看下面的离例子: 函数appendOne没有指定初始容量大小,appendMany指定了初始的容量大小。进行一下benchmark测试: 可以看到,AppendMany…
golang goquery selector(选择器) 示例
之前用python的beautifulsoup,最近研究Go爬虫相关的知识,使用到goquery这个库比较多,功能类似beautifulsoup
可能是国内最火的开源项目 —— Go 篇
截止目前开源中国收录了 44517 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,近年 Go 语言排名一路飙升,因此本文整理了 Go 语言中评分最高并且收藏量超过 100 的几款项目,以供开发者选择和交流
Go语言中的TCP/IP网络编程
乍一看,通过TCP/IP层连接两个进程会感觉可怕, 但是在Go语言中可能比你想象的要简单的多。当然很多情况下,不是大多数情况下,使用更高级别的网络协议毫无疑问会更好,因为可以使用华丽的API, 它们隐藏了很多技术细节。现在根据不同的需求,有很多选择,比如消息队列协议, gRP…
golang tcp拆包的正确姿势
最近在造一个叫im-go的服务,看名字也能猜出来,是一个基于Go的IM服务,因为不想引入任何的依赖库,所以是手写每个模块的。 之前看过Netty,于是也想做一个类似Netty Codec的,用于编码解码的模块, 方便地处理TCP粘包这种细节问题。 在网上做了一番搜索之后,发现排…
GO千万级消息推送服务
公司此前有一个简单的文章订阅业务,但是采用的是定时拉取的模式,周期比较长,时效性不佳。于是考虑做一个长连接服务,主动把新产生的文章推送下去。 因为是web场景,所以优先考虑成熟的websocket协议,很多编程语言都有成熟的服务端开发框架。 假设有100万人在线,那么1篇文章…
拜拜了,GOPATH君!新版本Golang的包管理入门教程
Go 1.11和1.12实现了对包管理的初步支持,Go的新依赖管理系统使依赖版本信息明确且易于管理。 作为Go语言的推广者,常常被问到各种关于Go语言的基础特性问题。 其中,关于包管理方面的问题会让我非常尴尬,因为Go的包管理在1.11之前与Python、Node、Java比较…
Gin(十三):交叉编译和Docker部署
陆陆续续已经更新到了第十三期,基本的知识点都已经讲解的差不多,那么最后一步就是对项目进行部署。这里我们将项目部署到 Linux 的服务器 Docker 上。本期知识点包括交叉编译和Docker部署。 什么是交叉编译呢?交叉编辑简单的说就是一个平台生成另一个平台的可执行程序。我们…