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 格式转换消息不行吗?

- 阅读全文 -