获得徽章 10
- #青训营笔记创作活动#
2月17日 打卡day20
GMP模型为什么要更新p?
一般来讲,M 的数量都会多于 P。像在 Go 中,M 的数量默认是 10000,P 的默认数量的 CPU 核数。另外由于 M 的属性,也就是如果存在系统阻塞调用,阻塞了 M,又不够用的情况下,M 会不断增加。M 不断增加的话,如果本地队列挂载在 M 上,那就意味着本地队列也会随之增加。这显然是不合理的,因为本地队列的管理会变得复杂,且 Work Stealing 性能会大幅度下降。M 被系统调用阻塞后,我们是期望把他既有未执行的任务分配给其他继续运行的,而不是一阻塞就导致全部停止。展开评论点赞 - #青训营笔记创作活动#
2月15日 打卡day19
go反射原理
反射三定律: 反射可以将 interface 类型变量转换成反射对象。 反射可以将反射对象还原成 interface 对象。 如果要修改反射对象,那么反射对象必须是可设置的(CanSet)。 reflect.Value 和 reflect.Type 里面都有 Elem 方法,但是它们的作用不一样: reflect.Type 的 Elem 方法返回的是元素类型,只适用于 array、chan、map、pointer 和 slice 类型的 reflect.Type。 reflect.Value 的 Elem 方法返回的是值,只适用于接口或指针类型的 reflect.Value。展开评论点赞 - #青训营笔记创作活动#
2月14日 打卡day18
本文以“UDP一定比TCP快吗”为问题,简要的讲述了使用 socket 进行数据传输的大致方法以及 TCP 的多个异常处理和数据包重传/避免重传机制;最后回答开篇提问,认为 UDP 在大部分情况下确实都比 TCP 快,但除了应用层上对未分段数据包进行整体重传的情况下会比 TCP 更慢展开评论点赞 - #青训营笔记创作活动#
2月13日 打卡day17
分布式限流的本质实际上就是协同,协同的本质就是信息交换,信息交换最重要的的就是信息的准确性和一致性。
展开评论点赞 - #青训营笔记创作活动#
2月12日 打卡day16
Redis常见面试题,复习一下Redis的数据结构,事务,集群,数据一致性,分布式锁,缓存问题。评论点赞 - #青训营笔记创作活动#
2月11日 打卡day15
Docker 和 k8s 并非直接的竞争对手,它俩相互依存。 Docker 是一个容器化平台,而 k8s 是 Docker 等容器平台的协调器,Docker很香,但 k8s 在业务达到一定规模后也得启用。
展开评论点赞 - #青训营笔记创作活动#
2月10日 打卡day14
select *禁止使用的主要原因,是由于网络开销大和无法使用索引覆盖原理,select *里面的*,只是要求结果集返回所有字段,并不会导致索引失效,索引失效只跟form/where后面的内容有关。
展开评论点赞 - #青训营笔记创作活动#
2月9日 打卡day13
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。展开评论点赞 - #青训营笔记创作活动#
2月5日 打卡day12
复习一遍go的基础语法
对值为 nil 的 map 添加元素,则会造成运行时 panic
map返回第二个值为是否存在该key
map用range迭代也是无序的
在 range 迭代中,得到的值其实是元素的一份值拷贝,更新拷贝并不会更改原来的元素,即是拷贝的地址并不是原有元素的地址。展开评论点赞 - #青训营笔记创作活动#
2月4日 打卡day11
Go HTTP 框架之 Hertz —— 通过 reverseproxy 进行反向代理实战评论点赞