golang
文章平均质量分 85
ElliotAlderson
c/c++/c#, golang, lua, 手游全栈开发
展开
-
互斥锁与读写锁使用
概述sync.Mutex和sync.RWMutex是Go语言底层基础对象,用于构建多个goroutine间的同步逻辑,当多个协程需要对共享数据读写时用到。具体实现极为简洁,性能也有保证。使用场景举例:1.多个协程操作同一个文件 2.生产者消费者模型 具体实例我就以最简单的打印方式说明代码互斥锁func print(t *testing.T, i int, wg *sync.WaitG原创 2017-11-28 20:51:24 · 380 阅读 · 0 评论 -
读写文件
概述文件描述源码type.go 21行// A FileInfo describes a file and is returned by Stat and Lstat.type FileInfo interface { Name() string // base name of the file Size() int64 // length in byte原创 2017-11-29 15:33:43 · 191 阅读 · 0 评论 -
面向对象思考及go实现继承与多态
概述面向对象的三大基本特征:封装,继承,多态五大基本原则:单一职责原则:指一个类设计的功能要单一,一个类只负责某一件事情。 开放封闭原则:一个模块在扩展方面是开放的,更改方面是封闭。如:网络模块,开始只有服务端功能,现 在加入客户端功能,应该在不修改服务端功能代码前提下,增加客户端功能的实现。 里氏替换原则:子类可以替换父类并出现在父类能够出现的任何地方。 1.子类可以扩展父类的功能原创 2017-11-30 21:11:08 · 418 阅读 · 0 评论 -
go版本行为树
概念行为树一般在做游戏AI的时候经常用到,Unity3d就有一款专门的行为树插件,Unreal4里面也在引擎层支持行为树编辑。本人之前是做Unity3d手游的,对这些有所涉猎,最近在用go语言写后台,我们刚开发了几个服务器,需要在后台编写一个程序监控服务的可用性,如果不可用可用报警之类的,然后我就想到了用行为树来实现这个功能。大家可能一直都是用插件的那种可视化工具配置行为树,顶多就是写写树的执行节点原创 2017-11-30 16:43:54 · 1677 阅读 · 0 评论 -
go 编程过程中的一些细节
概述此文章记录用golang开发过程中需要注意的细节,陆续再增加。1.int 和 int32 大小, int默认是int64,32位机器上默认是int32 var test int = 1 var test2 int32 = 1 println("len(test)=", unsafe.Sizeof(test)) println("len(test2)=", unsaf原创 2017-12-01 14:40:19 · 258 阅读 · 0 评论 -
go 接口详解
概述go的接口是一个很重要的类型,接口类型的变量存储了两个内容:1.实际的值 2.这个值的类型描述,在下面的代码实例中得到验证特点0.接口约定:接口类型中定义的方法即为约定,若一个具体类型实现了所有这些方法,则该类型就满足该接 口的约定,或者说它是这个接口类型的实例(实现了该接口)。1.可替换性(里氏替换原则):满足相同接口约定的类型之间可进行相互替换。例如:若一个方法的形参定义为接口类型,那么原创 2017-12-07 12:04:11 · 455 阅读 · 0 评论 -
游戏服务器性能测试
一、概念并发用户数:是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。 注册用户数:一般指的是数据库中存在的用户数。 在线用户数:只是 ”挂” 在系统上,对服务器不产生压力并发用户数一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个原创 2017-12-28 15:41:24 · 2960 阅读 · 0 评论