多个线程访问SQL数据库
本文关键字:SQL 数据库 访问 线程 | 更新日期: 2023-09-27 17:51:08
我有一个服务器和'x'个客户端。
当服务器正在监听入站连接时,它将创建一个客户端处理程序实例(一个管理客户端通信的类),该实例将在一个单独的线程中分离。
根据客户端发送给服务器的命令,服务器可能需要访问SQL数据库来存储有关该客户端的信息。
客户端处理程序实例将'处理'此请求。唯一的问题是,如果多个客户端处理程序想要访问SQL数据库来做完全相同的事情,那么就有可能出现读/写问题。
我正在考虑在服务器上公开一个静态方法,从客户端句柄实例调用它,然后锁定访问SQL数据库的函数(无论是读还是写)。
这是一个好方法还是有更好的方法?
谢谢。
嗯,你知道SQL有锁和大量的内部机制来序列化访问吗?这是自上世纪50年代创建SQL以来,SQL中根深蒂固的ACID条件的一部分吗?SQL中的锁机制非常非常好,基本上你试图解决一个60多年前就解决了的问题....因为似乎你需要读一本关于SQL基础知识的书。
在正常情况下(标准连接字符串),资源访问在SQL Server (TransactionIsolationLevel serialized)中序列化,但可以调整。我真的建议学习一些SQL基础知识。