一、悲观锁
比较悲观,担心拿数据时被别人修改,所以查询时先加锁在修改,保证操作时别人修改不了,期间需要访问该数据的都会等待。
select version from user where id=1 for update
update user set version=2 where id=1
在对id = 1的记录修改前,先通过for update的方式进行加锁,然后再进行修改。这就是比较典型的悲观锁策略。
1.共享锁
又称为读锁,可以查看但无法修改和删除的一种数据锁。(读取)操作创
代码如下:/// 共享锁 public class ShareLock { ReaderWriterLock Lock; IDisposable readLock, writeLock; public IDisposable ReadLock { get { Lock.AcquireReaderLock(-1); return readLock; } } public IDisposable WriteLock { get { Lock.AcquireWriter