java - Google App Engine (Java) : servlets, 数据存储和多线程

标签 java google-app-engine servlets

我正在使用 Google 应用引擎制作一个网站,但我对服务器端 servlet 以及它们如何与数据存储数据库交互有疑问。

基本上,它又回到了传统的读-修改-写的竞争条件;即,我正在从数据存储中读取一个实体,可能会更新它,然后写入更新(如果有)。

基本上,我可以同步对数据存储的访问吗?我需要吗?据我了解,服务器可以根据需要生成任意数量的 servlet 实例;我在“幕后”内容中使用静态方法,因此我确实认为可以将静态方法与静态锁定对象同步。

基本上,我不知道我需要/不需要采取什么针对竞争条件/等的防御措施。如果某处有方便的指南,那就太好了,但我似乎找不到。

最佳答案

没有任何同步策略可以帮助您,因为 GAE 不仅可以生成许多 servlet 实例,还可以生成许多不同的 VM。 为了解决有关防止数据存储一致性问题的基本问题,您必须在原子事务中访问数据。检查这里:Transactions

关于java - Google App Engine (Java) : servlets, 数据存储和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12662875/

相关文章:

java - 拖入 libgdx 闪烁

java - URLConnection 使用 FTP url 调用 getOutputStream 速度很慢

java - 由于使用 apache-poi 库创建下拉列表而导致 Excel 损坏

google-app-engine - 谷歌云存储认证

python - 在 NDB 中跟踪未知类型的反向引用

java - 将 TableColumn 的宽度绑定(bind)到标题或内容的宽度,以较高者为准?

java - 在servlet中更新sql语句而不是在servlet中

java - 将具有 main 方法的 Java 程序转换为 servlet

eclipse - Eclipse 中的部署目录在哪里?

php - Google-App-Engine MySQL 数据库未连接