MySQL:锁的学习

1. 分类 1.1. 对锁的态度 乐观锁; 悲观锁; 1.2. 属性分类 排他锁; 共享锁; 1.3. 粒度级别分类 全局锁; 页级锁; 表级锁; 行级锁; 2. 对锁的态度 2.1. 乐观锁 乐观的认为别人不会去修改数据,没有锁,在确定修改时再重新查询一遍数据,如果数据被修改了就放弃修改数据。 一般是读的为主。如果频繁的写入,会导致较高的失败率。 乐观锁通过 CAS 或者版本机制来

- 阅读全文 -

Go : GMP 模型深入理解

一、基础知识学习 1.1 概述 计算机最早是时候是单进程时代,一次只能执行一个进程任务,其他进程想执行任务,只能等待排队。 后面出现了多进程、多线程,可以同时执行多个进程/线程任务,但是这个是并非真正的同时执行。而是将CPU的执行时间切分成一个个时间单位(时间片),然后将这些进程/线程切换着执行。 如果一个进程资源很大,那么这个进程的创建、销毁、切换都会占用很大的时间,切换时会有切换成本。 1.

- 阅读全文 -

RPC学习:进阶到 gRPC

所有代码详见代码仓库,rpc、grpc 目录 一、RPC 入门 1.1 介绍 RPC 全称叫做远程过程调用,是分布式系统中不同节点通信的一种流行的方式。我在刚开始学习的时候一直有一个误区,就是 RPC 是服务端调用客户端使用的,在实践上手后才恍然大悟,它是服务端与服务端之间的事件。 在刚刚入门的阶段的时候,我还有一个小小的疑问:那就是我直接用 http 传输,然后用 json 格式转换消息不行吗?

- 阅读全文 -

牛腩炖萝卜土豆小记

上个星期是第一次尝试炖牛腩,鉴于自我感觉比较成功,但是料太少了不过瘾,这周再次尝试。 准备的材料也与上次相同。 一、准备工作 1.1 辅助材料 李锦记一招胜 萝卜焖牛腩酱100g 0添加防腐剂 粤菜经典调味酱汁 6.18元 京东购买链接 乐畅肉料王炖卤肉调料28g 内含小袋方便炖卤 天然香辛大料牛羊鸡猪肉 1.81/2=0.9元 京东购买链接 生姜、葱 ... 1.2 主食材料

- 阅读全文 -

GO 代码的一些查漏补缺

一、入门 1. 地址引用错误 1.1 代码 func main() { slice := []int{0,1,2,3} m := make(map[int]*int) for key,val := range slice { m[key] = &val } for k,v := range m { fm

- 阅读全文 -