- 博客(6)
- 资源 (6)
- 收藏
- 关注
原创 lotou详解二:service注册和单节点消息发送
代码地址lotou中通过core/handler.go来管理单机节点中注册的service注册和移除注册registerService为一个service分配一个唯一的serviceId serviceId由16的节点id和46位的本机唯一的id组成。unregisterService移除一个service,同时将serviceId写会cache。这里为了避免服务器长时间运行,频繁增删servic
2017-03-30 22:55:36 834
原创 lotou详解一:基本概念
lotou是一个基于golang的支持分布式的轻量级游戏服务器框架,主要提供游戏服务器集群的消息转发代码仓库 lotou提供了三种不同的消息发送方式: 1.Send 用于普通的消息推送,不需要返回,发送之后就不再关注 2.Request 异步非阻塞请求响应模式,request接收一个回调函数和一个超时时间,当远程服务通过respond响应或者远程服务响应超时的时候,回调函数会被唤醒。 3.
2017-03-25 23:20:23 2755
原创 7个go的基本注意事项
传递参数的时候不传递interface而传递具体类型不适用io.Writer & io.Reader, 而使用具体类型(和第一点有点重复了)传递一个很大的interface,应该传递只需要用到的interface什么时候用函数什么时候用方法:当需要状态或者修改状态的时候使用方法,如果只是逻辑,则使用函数。pointer receiver还是value receiver。指针receiver可
2017-03-12 10:06:45 675
原创 go 自己实现一个gob编解码
代码库为什么要写这么一个编解码golang内部也实现了一个gob的二进制编解码,接口简单,使用方便,但是它对interface的支持不是很好, 比如如下代码:var in []interface{} = []interface{}{1, 1.5, "abc", "123", map[int]int{1: 1, 2: 2, 3: 3}}enc.Encode(in)var out []interf
2017-03-10 16:56:20 2439
原创 go 实现一个简单的UUID生成器
查看源代码实现方法:UUID 通过三部分组成 curtime << 22 | generaterid << 12 | sequenceid具体原理如下:首先每一个UUID生成器有一个id在生成UUID的时候先取当前时间距离1970的秒数作为高位,generaterid作为中间如果本次生成的时间和上一次的时间相同,则sequenceid +1,否则sequenceid位0然后把sequenceid作为
2017-03-09 18:24:06 2753
原创 go 语言中的继承
go 语言中可以通过匿名field来实现继承的效果,type T1 struct { A int}func (t T1) Log() {}func (t *T1) Print() {}type T2 struct { T1}t2 T2{}继承效果可以通过t2.Log()直接访问T1的method,就像面向对象的继承之后一样访问,不过这里要注意的传递到Log的是T1而不是T2匿
2017-03-09 15:15:26 1311
敏捷软件开发:原则、模式与实践
2011-07-01
linux设备驱动程序示例源代码
2010-12-25
数据结构与算法分析-c语言描述
2010-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人