07 2019 档案
摘要:⼀、使用Golang创建⼀一个TCP连接 1.服务端处理理流程 a.监听端口 b.接受客户端的链接 c.创建Goroutine,处理这个链接(⼀个服务端要链接多个客户端,所以使用Goroutine⾮常简单) 题外话:要是用Java、C#服务这边每⼀个请求都开⼀个线程处理的话,顶多⼏千个,但是Goro
阅读全文
摘要:一、 通过runtime包进行多核设置 1.NumCPU()获取当前系统的cpu核数 2.GOMAXPROCS设置当前程序运行时占用的cpu核数 版本1.6之前默认是使用1个核,而之后是全部使用。 好玩的程序: 我的电脑是8核的,分别运行1 2 4 8,看下cpu的使用率: 图一 未开始运行 图二
阅读全文
摘要:一、格式化输入和输出 1.从终端获取用户的输入 fmt.Scanf 空格作为分隔符,占位符和格式化输出的一致 fmt.Scan 从终端获取用户的输入,存储在Scanln中的参数里,空格和换行符作为分隔符 fmt.Scanln 从终端获取用户的输入,存储在Scanln中的参数里,空格作为分隔符,换行符
阅读全文
摘要:反射是语言里面是非常重要的一个特性,我们经常会看见这个词,但是对于反射没有一个很好的理解,主要是因为对于反射的使用场景不太熟悉。 一、理解变量的内在机制 1.类型信息,元信息,是预先定义好的,静态的。 2.值信息,程序进行过程中,动态变化的。 二、反射和空接口 1.空接口相当于一个容器,能接受任何东
阅读全文
摘要:一、背景介绍: 我们在进行数据存储的时候,有时候会加入本地缓存、分布式缓存以及数据库存储三级的结构,当我们取值的时候经常是像下面这样的流程: 1.先取本地缓存,如果值存在直接返回 2.本地缓存不存在,获取分布式缓存,存在直接返回,并更新本地缓存 3.分布式缓存不存在,查询数据库,更新分布式缓存、更新
阅读全文