golang
文章平均质量分 78
yefengzhichen
这个作者很懒,什么都没留下…
展开
-
golang string迭代和结构体初始化
1.golang字符串range时返回的类型为rune在某次测试时发现,string字符串,直接用下标访问和用range访问返回的类型不同,参看下面:func main () { str := "aA" fmt.Printf("type is %T \n", str[1], ) for _, i := range str { fmt.Printf("is type %T\...原创 2018-12-31 09:04:02 · 893 阅读 · 0 评论 -
go开源项目学习--cache2go
一、cache2go地址:https://github.com/muesli/cache2go主要特点:1、并发安全,使用RWMutex锁来保证并发执行2、可设置过期时间,过期自动删除3、可设置操作的回调函数,如增加、删除时的回调函数主要结构和关系为:cache:map类型,缓存器,根据设置的缓存数据名称来存取相应的缓存表CacheTableCacheTable:缓存表,存储一类数...原创 2019-01-01 11:18:22 · 617 阅读 · 0 评论 -
go开源项目学习--grpc
地址:https://github.com/grpc/grpc-go一、安装先尝试官方命令安装:go get google.golang.org/grpc结果报错:package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc "(https fetch: Get https://googl...原创 2019-01-01 14:28:40 · 1788 阅读 · 1 评论 -
golang数组和切片深入分析
一、数组1.1 数组赋值给数组Go数组是值类型,因此赋值操作和函数传参数会复制整个数组的数据,例:func main() { a := [3]int{1, 2, 3} b := a fmt.Printf("a addr: %p, a[0] addr: %p\n", &a, &(a[0])) fmt.Printf("b addr: %p, b[0] addr: %p\n...原创 2019-02-14 21:13:21 · 703 阅读 · 1 评论 -
golang mutex源码详细解析
目前golang的版本是1.12,其中的mutex是增加了普通模式和饥饿模式切换的优化版本,为了便于理解,这里先从最初版本的mutex开始分析,后面再对优化版本进行说明。Mutex结构说明定义最初版本锁的定义如下:// mutex是互斥锁// mutex的零值是没有加锁的//在使用之后不能被拷贝type Mutex struct { state int32 //状态标识 ...原创 2019-06-24 08:24:21 · 3236 阅读 · 2 评论 -
unikernel介绍
最近听了一个关于容器的讲座,里面提到docker未来很可能向Unikernel发展,因此查资料学习了下。定义参考维基:unikernel由库操作系统组成,是一个特殊的、单地址空间的机器镜像。开发者从中选择模块化栈和最小库集合,组成应用需要的最小化系统架构来运行。这些库跟应用和配置代码一起编译,来构建封闭的、固定用途的镜像(unikernels),可以直接在hypervisor或硬件上,而不需...原创 2019-05-11 15:55:47 · 2400 阅读 · 0 评论 -
利用SpaceVim打造完美Go IDE
SpaceVim介绍下载安装go语言配置原创 2019-05-11 15:56:24 · 4537 阅读 · 0 评论 -
go消息队列nsq源码调用分析
nsqdTopic: 标识一类消息,各个topic之间相互独立,nsqd会为每个topic创建一个Topic结构Channel:标识一个队列,用来实现消费者之间的负载均衡。一个topic可以有多个channel,发布者的消息会被发送到每一个channel,相当于是广播操作。对于channel中的消息,会任选一个连接的消费者来发送。如上图所示,对其中的一个topic有三个chan...原创 2019-06-29 13:34:34 · 1016 阅读 · 0 评论