假设我有一张名为items
的表格。我的webapp的用户可以删除items
表的行,但我不想让表空。
所以目前我的应用程序中有这样的代码:
if (itemsCount() <= 1) {
don't delete;
}
else {
delete;
}
但我意识到这段代码容易受到并发问题的影响。例如,如果当前items
的大小为2,并且有两个线程几乎在同一时间执行此代码,则该表可能变为空。
我认为这个问题对于编写webapps的人来说非常普遍。人们应该已经解决了它。有哪些可用的解决方案?
答案 0 :(得分:0)
最常见的解决方案是使用事务管理器。在您的情况下,事务管理器将协调线程执行,以确保一次只有一个线程访问并更新表。
您没有提到您正在使用哪种语言和哪种环境,但假设Java和JEE,事务管理非常简单。开始here。