Multithreading 多线程从两个不同的数据库连接访问相同的数据库表
我有一些线程在我的程序上运行(每个线程都有自己的DB连接),它们想要访问相同的表,这会导致任何问题吗 简单地说 我有:Multithreading 多线程从两个不同的数据库连接访问相同的数据库表,multithreading,sql-server-2005,visual-c++,Multithreading,Sql Server 2005,Visual C++,我有一些线程在我的程序上运行(每个线程都有自己的DB连接),它们想要访问相同的表,这会导致任何问题吗 简单地说 我有: 2个螺纹T1和T2 2个DB连接C1和C2 1表DB1 T1总是使用C1,T2总是使用C2 T1是不断插入、删除、更新表DBTable1 T2正在读取表DBTable1 会有什么问题吗 我使用的是MS SQL server。数据库是专门为处理这些场景中的并发用户而设计的。您将不会遇到任何问题。数据库引擎是为并发而设计的 如果T2在T1写入时调用,它将等待T1完成。这不是一个
- 2个螺纹T1和T2
- 2个DB连接C1和C2
- 1表DB1
- T1总是使用C1,T2总是使用C2
- T1是不断插入、删除、更新表DBTable1
- T2正在读取表DBTable1
我使用的是MS SQL server。数据库是专门为处理这些场景中的并发用户而设计的。您将不会遇到任何问题。数据库引擎是为并发而设计的
如果T2在T1写入时调用,它将等待T1完成。这不是一个问题。是的,因为数据库事务会通过其在不同线程操作之间的隔离属性来确保并发性。是的。正如我的链接所解释的,SQL数据库是面向事务的。默认值为每条语句后自动提交。