2

我正在使用 LINQ to SQL 来读取/写入服务器上的数据库。现在只有 db-entry 的创建者可以更改相应的信息。

是否保证不会出现并发问题?我的意思是不可能从两个不同的位置同时更改一个条目。或者是否还会出现读取并发问题?

提前致谢

4

3 回答 3

5

不; 那根本没有帮助。

单个用户仍然可以从不同的选项卡或浏览器或机器发送多个并发请求。

于 2013-06-05T20:26:12.417 回答
0

排除使用多个窗口的“恶意”用户的明显不太可能的情况,我想知道是否会发生奇怪的情况:

  • 用户发送其第一个请求,该请求由 Web 服务器在线程上执行,但无论出于何种原因,该线程都被抢占了。
  • 然后稍后同一用户发出另一个与第一个冲突的请求,但此请求在未被抢占的线程上执行并直接将新值写入数据库。
  • 然后第一个线程被唤醒并结束其写入旧值的工作

因此,当您有任何疑问时,请采取一些保护措施,因为我们从不小心,尤其是在编程时;)

于 2013-06-05T20:31:39.537 回答
0

在理想的世界里是的​​。但是有几件事情需要考虑。

同一用户可以从多个位置提交更改吗?

如果 TCP/IP 连接中断并重新建立,重叠/无序请求是否会成为问题?

是否有可能需要版主或管理员访问用户数据?

于 2013-06-05T20:36:33.260 回答