锁模式
Null(NL)
允许其他进程加锁,避免资源在无锁时销毁
Concurrent Read(CR)
表达读的需求,允许其他进程读写,但是不允许独占
Concurrent Write
表达读和写的需求,允许其他进程读写,但是不允许独占
Protected Read
传统共享锁。表达读的需求,阻止其他进程写
Protected Write
传统更新锁。表达读和写的需求,阻止其他进程写
Exclusive
传统排他锁。阻止其他进程读写
CAP理论:任何一个系统无法同时满足以下三项:
- 一致性
- 可用性
- 分区容错性
锁:用于多线程环境中,任意时刻只有一个线程访问同步代码块。
实现方式:使用所有线程可见的标记。如Java中synchronized在对象头标记,Lock接口实现使用int型volatile变量,linux内核使用互斥量或信号量等内存数据标记。
对CAP理论,互联网场景中通常牺牲一致性,获得高可用性,实现最终一致性。
最终一致性通常通过分布式事务、分布式锁等实现。问题是在分布式环境下,使标记对多个进程可见。