というテーブルがあるとしましょうitems
。Web アプリケーションのユーザーはテーブルの行を削除できitems
ますが、テーブルを空にしたくありません。
したがって、現在、アプリケーションに次のようなコードがあります。
if (itemsCount() <= 1) {
don't delete;
}
else {
delete;
}
しかし、このコードは並行性の問題に対して脆弱であることを認識しています。たとえば、現在のサイズitems
が 2 で、このコードをほぼ同時に実行する 2 つのスレッドがある場合、テーブルが空になる可能性があります。
この問題は、Web アプリケーションを作成する人にとってはよくあることだと思います。人々はすでにそれを解決しているはずです。これに対して利用可能なソリューションは何ですか?