0

假设我有一张名为items. 我的 webapp 的用户可以删除items表格的行,但我不想让表格为空。

所以目前我的应用程序中有这样的代码:

if (itemsCount() <= 1) {
  don't delete;
}
else {
  delete;
}

但我意识到这段代码容易受到并发问题的影响。例如,如果当前的大小items为 2,并且有两个线程几乎同时执行此代码,则该表可能为空。

我认为这个问题对于编写 webapps 的人来说很常见。人们应该已经解决了。有哪些可用的解决方案?

4

1 回答 1

0

最常见的解决方案是使用事务管理器。在您的情况下,事务管理器将协调线程执行以确保一次只有一个线程访问和更新表。

您没有提到您使用的是哪种语言和哪种环境,但假设 Java 和 JEE,事务管理非常容易。从这里开始。

于 2015-11-19T12:14:23.597 回答