我能够使用的最佳类比是源代码控制和构建应用程序。结账是一个锁,而构建是一个交易。
我之前没有写过这个,所以以下只是我使用的概念的简要总结。就像任何类比一样,如果你把它拉得太远就会崩溃。
读取已提交 - 代码已签出(已锁定),您无法在签入代码之前构建代码(事务)。
Read Uncommitted - 您可以看到代码,但您不知道它是旧版本还是更新版本。构建可能有效或可能无效,具体取决于是否已检入所有代码。
在构建过程中无法检出可重复读取文件,但如果文件不影响构建,则可以将文件添加到项目中。
Serializable - 在构建过程中无法检出或添加文件;整个项目正在使用/检出(范围锁定)。
快照 - 用户使用标记为发布的文件,但看不到下一版本的更改。