事务的并发控制协议理论&MySQL源码分析
事务的并发控制协议理论&MySQL源码分析
偏序
大多数的问题来自于对性能的追求
  1. 在计算机中什么才是原子执行的? 一个汇编指令是原子操作吗?
假设 有且仅有一个CPU
假设 有A,B,C三个指令并发执行,那么其存在6种排列组合的先后执行顺序。
如果 三个指令相互独立 那么有6种排列组合的方式其执行结果导致计算机的最终状态是相同的
假设 B 依赖 A的执行结果 那么其中排列3,5,6与1,2,5的计算结果将会不同
我们定义满足A先行发生于B的执行顺序产生的计算结果是正确的
那么我们说排列1,2,5具有正确性
同时CPU有三种选择对ABC指令进行调度来提高并发性
并发性意味着,当A命令的执行条件不满足而无法执行时CPU可以优先执行C命令,其最终的计算机结果与ABC串行执行等价
并行意味着 如果我们有两个CPU,那么我们可以让A和C同时执行而不影响计算结果的正确性
1
A
B
C
2
A
C
B
3
B
A
C
4
B
C
A
5
C
A
B
6
C
B
A
  1. 何为并发与并行?
  1. 并发就是通过合理调度任务执行的顺序,尽可能减少CPU空闲的时间。
  1. 并行就是通过同时执行多个任务,占用更多的CPU资源。