在使用 Python 的 Google App Engine 上,我正在寻找竞争条件问题的解决方案,即多个用户试图同时增加某个计数器。我找到了其中两个:transactions中描述的 increment_counter() 和compare-and-set中的 bump_counter() 。我的问题:1)他们都完全解决了比赛条件问题吗?2)如果是这样,哪个更好?
另外,是否有人可以详细说明它们中的每一个,因为我看不到代码如何解决问题。例如,1)在increment_counter()事务期间,如果另一个用户更新了计数器,事务会失败吗?2)同样,在比较和设置的bump_counter()期间,如果另一个用户更新计数器,client.cas()会失败吗?