我正在使用 Google 应用引擎制作一个网站,但我对服务器端 servlet 以及它们如何与数据存储数据库交互有疑问。
基本上,它又回到了传统的读-修改-写的竞争条件;即,我正在从数据存储中读取一个实体,可能会更新它,然后写入更新(如果有)。
基本上,我可以同步对数据存储的访问吗?我需要吗?据我了解,服务器可以根据需要生成任意数量的 servlet 实例;我在“幕后”内容中使用静态方法,因此我确实认为可以将静态方法与静态锁定对象同步。
基本上,我不知道我需要/不需要采取什么针对竞争条件/等的防御措施。如果某处有方便的指南,那就太好了,但我似乎找不到。
最佳答案
没有任何同步
策略可以帮助您,因为 GAE 不仅可以生成许多 servlet 实例,还可以生成许多不同的 VM。
为了解决有关防止数据存储一致性问题的基本问题,您必须在原子事务中访问数据。检查这里:Transactions
关于java - Google App Engine (Java) : servlets, 数据存储和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662875/