随笔分类 -  Go

摘要:目录 基本Tcp服务器 简单使用 源码 基本Tcp服务器 Server模块:服务器配置信息、启动、停止、运行、添加路由、路由管理器、链接管理器等。 链接属性配置模块:启动链接、停止链接、获取链接对象等。 消息封装:消息id、长度、内容、及消息的封包与解包等。 基础路由模块:提供路由接口及基类,开启服 阅读全文
posted @ 2020-02-22 19:45 -零 阅读(581) 评论(0) 推荐(0) 编辑
摘要:泄露情况分类 死循环 channel 导致的泄露 传统同步机制导致的泄露 死循环 go协程单纯地陷入死循环中。 chanel 引起的泄露 发送不接收 向没有接收者的channel发送信息。我们知道,发送者一般都会配有相应的接收者。理想情况下,我们希望接收者总能接收完所有发送的数据,这样就不会有任何问 阅读全文
posted @ 2020-02-22 12:40 -零 阅读(775) 评论(0) 推荐(0) 编辑
摘要:原文链接 目录 安装 发送请求 传递URL参数 响应内容 Json响应内容 定制请求头 BasicAuth 认证 JSON请求 Cookie 超时 关闭证书验证 调试模式 连接操作 Respone对象 安装 go get https://github.com/kirinlabs/HttpReques 阅读全文
posted @ 2020-02-22 11:09 -零 阅读(5061) 评论(0) 推荐(0) 编辑
摘要:github:https://github.com/sevenelevenlee/go-patterns Golang设计模式思想 前言 一切设计模式都是灵活应用struct的组合模式,以及go隐形继承接口的特性 go中的interface就是一些方法装饰, 而struct并不依赖于接口 设计模式类 阅读全文
posted @ 2020-02-21 22:30 -零 阅读(619) 评论(0) 推荐(0) 编辑
摘要:原文链接 文章目录 遍历取不到所有元素指针? 遍历会停止么? 对大数组这样遍历有啥问题? 对大数组这样重置效率高么? 对 map 遍历时删除元素能遍历到么? 对 map 遍历时新增元素能遍历到么? 这样遍历中起 goroutine 可以么? 遍历取不到所有元素指针? 如下代码想从数组遍历获取一个指针 阅读全文
posted @ 2020-02-21 21:50 -零 阅读(1982) 评论(0) 推荐(0) 编辑
摘要:两种方式解决并发访问map 读写锁实现并发安全Map sync.Map 读写锁实现并发安全Map 并发访问map是不安全的。所以如果希望在多协程中并发访问map,必须提供某种同步机制,一般情况下通过读写锁sync.RWMutex实现对map的并发访问控制,将map和sync.RWMutex封装一下, 阅读全文
posted @ 2020-02-21 16:26 -零 阅读(2600) 评论(1) 推荐(0) 编辑
摘要:Go 语言条件语句 Go 语言提供了以下几种条件判断语句: 语句描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 if...else 语句 if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 if 嵌套语句 你可以在  阅读全文
posted @ 2020-02-20 21:11 -零 阅读(349) 评论(0) 推荐(0) 编辑
摘要:作者:Gundy_链接:https://www.jianshu.com/p/dc94f2099277 生产者消费者模型 并发编程中最常见的例子就是生产者消费者模式,该模式主要通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。简单地说,就是生产者生产一些数据,然后放到成果队列中,同时 阅读全文
posted @ 2020-02-20 18:59 -零 阅读(2456) 评论(0) 推荐(0) 编辑
摘要:文件打开与关闭 文件打开 原始的文件打开函数: func OpenFile(name string, flag int, perm FileMode) (*File, error) name:绝对路径或相对路径(相对于进程当前工作目录)flag:指定文件的访问模式,在os中这些参数被定义为常量 co 阅读全文
posted @ 2020-02-20 11:12 -零 阅读(3138) 评论(0) 推荐(0) 编辑
摘要:序列化与反序列化 package main import ( "encoding/json" "fmt" ) //JSON的序列化 //将结构体构成数据,并转JSON //将map[string]interface{}构成数据,并转JSON //使用map切片构成数据,并转JSON //json.c 阅读全文
posted @ 2020-02-19 20:59 -零 阅读(2587) 评论(0) 推荐(0) 编辑
摘要:原文链接 简介 twelve-factor应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码 阅读全文
posted @ 2020-02-19 18:16 -零 阅读(1985) 评论(0) 推荐(0) 编辑
摘要:logger包介绍 logger支持功能 logger支持自定义时间格式; logger支持不同的日志等级输出,能够有效提高日志输出性能和检索; logger支持控制台+文件+网络的三种方式输出,并且可以任意组合; logger支持控制台输出颜色区分; logger支持文本输出的自定制; logge 阅读全文
posted @ 2020-02-18 21:45 -零 阅读(1653) 评论(0) 推荐(0) 编辑
摘要:作者:waynehu 地址:go语言的time包 go语言的time包 ##组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 阅读全文
posted @ 2020-02-18 20:34 -零 阅读(390) 评论(0) 推荐(0) 编辑
摘要:原文链接 摘录一: Go 1.3 的 sync 包中加入一个新特性:Pool。 官方文档可以看这里 http://golang.org/pkg/sync/#Pool 这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。 1 2 3 4 type Pool func (p *Poo 阅读全文
posted @ 2020-02-18 11:04 -零 阅读(3109) 评论(0) 推荐(1) 编辑
摘要:字节序 字节序就是多字节数据类型 (int, float 等)在内存中的存储顺序。在网络传输中基于文本类型的协议(比如 JSON)和二进制协议都是字节通信,是采用字节序进行数据包的处理。 字节序可分为大端序,低地址端存放高位字节;小端序与之相反,低地址端存放低位字节。 在计算机内部,小端序被广泛应用 阅读全文
posted @ 2020-02-17 21:37 -零 阅读(9242) 评论(0) 推荐(0) 编辑
摘要:一、new 函数原型:func new(Type) *Type函数作用:用来分配内存,只有是一个参数,参数为类型,它的返回值是一个指向新分配类型的指针,并且内存置为零。 package main import "fmt" func main() { test1 := new(int)//创建int类 阅读全文
posted @ 2020-02-17 15:19 -零 阅读(663) 评论(0) 推荐(0) 编辑
摘要:TCP服务端 go语言中可以每次建立一次链接就创建一个goroutine去处理,使用goroutine实现并发非常方便和高效。 TCP服务端程序的一般处理流程1.建立并绑定 Socket:首先服务端使用 socket() 函数建立网络套接字,然后使用 bind() 函数为套接字绑定指定的 IP 和端 阅读全文
posted @ 2020-02-17 12:29 -零 阅读(1006) 评论(0) 推荐(0) 编辑
摘要:原文:Go中的各种变量类型转换 Go中的各种变量类型转换 从PHP转向GO,最不能适应的是GO是强类型语言,变量的申明需要指定其类型,相同的变量之间才可以做算术、关系、逻辑等运算。 一、string类型 intint8int16int32int64 string转换成这5种类型,需要先使用 strc 阅读全文
posted @ 2020-02-16 21:00 -零 阅读(1421) 评论(0) 推荐(0) 编辑
摘要:原文:https://gitee.com/GuaikOrg/go-snowflake Snowflake简介 在单机系统中我们会使用自增id作为数据的唯一id,自增id在数据库中有利于排序和索引,但是在分布式系统中如果还是利用数据库的自增id会引起冲突,自增id非常容易被爬虫爬取数据。在分布式系统中 阅读全文
posted @ 2020-02-16 19:53 -零 阅读(1683) 评论(0) 推荐(0) 编辑
摘要:go面向接口编程知识点 接口定义与格式 隐式实现及实现条件 接口赋值 空接口 接口嵌套 类型断言 多态 接口定义与格式 接口(interface)是一种类型,用来定义行为(方法)。这句话有两个重点,类型和定义行为。 首先解释定义行为:接口即一组方法定义的集合,定义了对象的一组行为,就是定义了一些函数 阅读全文
posted @ 2020-02-16 13:08 -零 阅读(5379) 评论(1) 推荐(1) 编辑

点击右上角即可分享
微信分享提示