如何来解决数据库管理互斥问题

如何来解决数据库管理互斥问题,第1张

1. 首先,需要建立一个全局静态的互斥量;例如:

using System.Threading

private static Mutex m

2. 修改原先 *** 作数据库的部分,注意的是(数据库查询是不需要的):

if(m==null)

m=new Mutex()

//Enter into mutex area

m.WaitOne()

//Execute sql command here

//Depart from mutex area

m.ReleaseMutex()

数据库读写的程度,这是事务控制数据库隔离里面的内容。

建议你使用spring声明式事务,并使用符合你的要求的事务隔离级别即可。

spring目前的提供支持的数据库事务隔离级别有:

数据库提供了四种事务隔离级别, 不同的隔离级别采用不同的锁类开来实现.

在四种隔离级别中, Serializable的级别最高, Read Uncommited级别最低.

大多数数据库的默认隔离级别为: Read Commited,如Sql Server , Oracle.

少数数据库默认的隔离级别为Repeatable Read, 如MySQL InnoDB存储引擎

即使是最低的级别,也不会出现 第一类 丢失 更新问题 .

Read Uncommited :读未提交数据( 会出现脏读,不可重复读,幻读 ,避免了 第一类丢失 更新 )

Read Commited :读已提交的数据(会出现不可重复读,幻读)

Repeatable Read :可重复读(会出现幻读)

Serializable :串行化


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9550936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存