摘要:
并发 并发机制,多goroutine间的共享变量,并发问题的分析手段,解决模式,goroutine和线程区别 竞争条件 并发:无法判断多个事件执行的顺序的情形; 并发安全:函数,方法,类型在线性执行或并发执行时,都能正确的返回结果; **包级别的导出函数一般都是并发安全的.**因为只要让变量不在多个 阅读全文
摘要:
Goroutines 进程,线程和协程区别: 进程和线程:内核进行调度,有cpu时间片的概念,进行抢占式调度;相互间更公平,但是资源占用高; 协程:用户级线程,对内核透明,程序自行调度,通常只能进行协作式调度,需要协程主动让出控制权;相互间执行不公平,无法直接利用多核优势,但资源占用低; gorou 阅读全文
摘要:
常用接口 sort.Interface sort包是go内置排序函数包.go的排序函数只是接口声明,不对具体类型和元素做假设.它通过sort.Interface接口约定具体排序序列,它需要知道三个参数长度,比较结果,交换方式. type Interface interface { Len() int 阅读全文
摘要:
接口 接口类型是对于其他类型行为的抽象;因为接口类型通过只声明不定义具体实现细节,来增加函数的灵活性和扩展性; go中接口类型可以进行隐式实现,即具体实现中不需要定义所有接口声明的函数,只需要按需使用即可.这种定义方式可以让你修改接口时,不用改变已有实现; 接口约定 通过接口约定可以增加函数的灵活性 阅读全文
摘要:
方法 go中同时有函数和方法.方法是包含了接收者( receiver)的函数,接收者可以是命名类型或结构体类型的值或指针.所有给定类型的方法属于该类型的方法集.go中的方法是一种有绑定行为的特殊函数,绑定行为用于标识函数所属. 方法声明 方法:在函数名称前增加变量的声明方式.这个附加的参数会将该函数 阅读全文
摘要:
函数 函数:将业务拆分为小单元,便于重复调用.隐藏实现细节. 函数声明 函数声明:函数名,形式参数列表,返回值列表(可省略),函数体; func name(parameter-list) (result-list) { body } 形参由调用方提供,返回值省略表示没有返回值.返回值也可以像形参一样 阅读全文
摘要:
复合数据结构 复合数据结构:就是组合基本类型而构造出来的复合数据类型. 数组:由同构的元素组成,固定内存大小; 结构体:由异构的元素组成,固定内存大小; slice,map是动态数据结构,根据需要动态增长; 数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.Sli 阅读全文
摘要:
数据类型 所有数据在底层上都是由比特组成,但是通过语言封装数据类型,可以兼顾硬件的特性和表达赋值数据的便捷性; go将数据类型分为四类:基础类型,复合类型,引用类型和接口类型. 基础类型:数值,字符串,布尔型; 复合类型:数组,结构体 引用类型:指针,切片,字典,函数,通道 接口类型:接口 基础类型 阅读全文
摘要:
go go的编程原则是简洁. 具备功能: 自动垃圾回收 一个包系统 函数是一等公民 语法作用域 系统调用接口 只读的UTF8字符串 类型系统,内置数据类型,聚合类型 标准库 不包含特性: 没有隐式的数值转换 没有构造函数和析构函数 没有运算符重载 没有默认参数 没有继承 没有泛型 没有异常 没有宏 阅读全文
摘要:
非功能需求测试 功能需求:指应用程序中定义的业务逻辑. 非功能需求:是相对于功能需求而言的,它主要指非应用程序中定义的业务逻辑,一般指容量,吞吐量,性能等测试. 性能:指处理单一失误所花时间的一种度量; 吞吐量:系统在一定时间内处理事务的数量,通常它受限于某个瓶颈; 容量:在一定的负载下,当每个单独 阅读全文