GMP调度模型
CSP (communicating sequential processes)go推荐的并发模型 其他语言一般是通过共享内存实现线程间通信。go推荐通过channel “不要以共享内存的方式来通信,相反,要通过通信的来共内存” goroutine -> channel -> goroutine GM模型 缺点:限制GO并发 1...
CSP (communicating sequential processes)go推荐的并发模型 其他语言一般是通过共享内存实现线程间通信。go推荐通过channel “不要以共享内存的方式来通信,相反,要通过通信的来共内存” goroutine -> channel -> goroutine GM模型 缺点:限制GO并发 1...
背景 应对单表百万级的数据量,接口频繁超时 原因:1、mysql慢查询 单条sql语句执行时间长,高达30s,mysql机器CPU瞬间打满 原因:1、mysql慢查询;2、并发查表 索引 联合索引数据结构 我们都知道联合索引遵循左前缀原则,这一特性其实是由其数据结构所决定的.index(col1, col2, col3)数据结构图: 联合索引数据结构特性: ...
转自:https://www.cnblogs.com/kevincaptain/p/5876070.html RabbitMQ 用于分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然 Redis NoSQL存储系统,可以当做轻量级队列服务来使用 对比 可靠消费 Redis:没有...
TCP 面向连接 可靠交付、流量控制、拥塞控制、全双工 字节流传输 只能一对一 UDP 面向报文,不拆包、组包 可一对一、一对多、多对多 TCP三次握手四次挥手 TCP 三次握手 1、client向server发送一个syn 2、server收到s...
位b(bit比特) 二进制位 字节B(byte) 1B = 8b 字(word) 计算机进行数据处理时,一次存取、加工和传送的数据长度 一个字通常由一个或多个(一般是字节的整数位)字节构成 如:64位系统字的长度为64(8字节) K 1K = 1024B = 2^10B 约 10^3B M 1M = 1024K = 2^20B 约 10^...
包初始化顺序 main.go先执行import的包 import的顺序为深度优先 同一个包中先执行const -> var ->init(可以有多个,执行顺序无序) 同一个包只能初始化一次 参考 https://blog.csdn.net/claram/article/details/77745665
hash冲突 hash冲突:map的底层数据结构是数组,当向map中存储一个kv时,通过hash计算得出这个kv应该存储在底层数组的哪个下标,如果在始之前该数组下标已经存在kv(前后两个kv的hash值一样),这时就产生了冲突。 hash冲突解决: 开放定址法:当存储kv产生hash冲突时,就从数组冲突下标往后查找,找到一个空值下...
panic 数据结构 type _panic struct { argp unsafe.Pointer arg interface{} // panic 的参数 link *_panic // 链接下一个 panic 结构体 recovered bool // 是否恢复,到此为止? ...
概述 go中通过interface实现鸭子类型(duck typing) 利用interface类型实现多态 数据结构 type:保存变量的类型 data:保存变量的值
定义 官方:是由函数和其相关的引用环境组合而成的实体 闭包和变量逃逸 func incr() func() int { var x int return func() int { x++ return x } } func main() { i := incr() println(i()) // 1 println(i...