IO模型
1、同步、异步是相对于任务来说,即一个任务的处理,是否需要等待依赖任务的处理结果,才能继续向下执行;异步的消息通知采用回调的方式,而同步没有。 2、阻塞、非阻塞相对于线程而言,即线程在调用结果返回之前,是挂起,还是继续处理其他任务,得到调用结果返回通知后继续执行。 同步 一个任务的完成,需要等待所依赖任务的完成结果,才能继续向下执行。是一种可靠的任务序列 异步 一个任...
1、同步、异步是相对于任务来说,即一个任务的处理,是否需要等待依赖任务的处理结果,才能继续向下执行;异步的消息通知采用回调的方式,而同步没有。 2、阻塞、非阻塞相对于线程而言,即线程在调用结果返回之前,是挂起,还是继续处理其他任务,得到调用结果返回通知后继续执行。 同步 一个任务的完成,需要等待所依赖任务的完成结果,才能继续向下执行。是一种可靠的任务序列 异步 一个任...
跳表 https://juejin.cn/post/6844903955831619597 优点: 更新时,局部性更好 支持范围查询 缺点: 占空间 应用场景: 内存多级页表 redis key管理 redis zset类型 ...
节点的度 节点有几个分叉 高度 自底向上,叶子节点的高度为1 树高logN 深度 自顶向下,根节点的深度为1 二叉树 定义: 任意节点的度不超过2 查找时间复杂度:logN,递归深度logN;最坏情况下N 查找空间复杂度:logN,递归使用的栈空间;最坏情况下是N 遍历时间复杂度:N,每个节点都遍...
包管理简史 GOPATH GOROOT:调用官方包,会从$GOROOT/src目录下寻找该包,一个栗子: GOPATH:一个项目一个GOPATH,go get第三方包时,会保存在$GOPATH/src目录下寻找包,一个栗子: 缺点: 没有依赖列表,只能一个一个go get 依赖代码根项目的代码混到$GOPATH/src vendor机制 ...
https://www.nowcoder.com/discuss/526897
一、下载pporf 端点 debug=0 debug=1 debug=2 /debug/pprof/goroutine 二进制(pprof 分析) 简要 Goroutine 堆栈 完整 Goroutine 堆栈 /debug/...
快速排序 思想:分治 1、选一个基准 2、头、尾指针遍历,小于基准在左边,大于基准在右边 3、递归基准的左边、右边 时间复杂度:最好情况每次递归都平分数组,一共需要递归logn次,每次需要n时间,复杂度为O(n*logn),最坏情况每次都把数组分成1和n-1,一共需要递归n次,每次需要n时间,总体复杂度为O(n^2)。平...
哈稀算法 一致性哈稀算法 尽可能少改变已存在的请求与处理请求服务器之间的映射关系 解决分布式系统中简单哈稀存在的动态伸缩问题 优点 可扩展 缺点 分布不均匀 解决:虚拟节点,虚拟节点放在哈稀环,虚拟节点指向物理服务组
定性goroutine泄漏 现象1: goroutine数量持续增长(本文例子使用了goroutine pool,没有持续增长现象) 现象2: 内存持续增长 go tool pprof http://0.0.0.0:6060/debug/pprof/goroutine查看top,runtime.gopark接近100% root@ip:~/pprof# go tool...