java - Google App Engine (java) 服务类是线程安全的吗?

标签 java google-app-engine

一次从工厂获取对服务的引用并使用它来处理多个请求是否可以?使用以下 servlet 伪代码可以最好地解释它:

SomeServlet...{
  MemcacheService memcacheService = MemcacheServiceFactory.getMemcacheService();
  UserService userService = UserServiceFactory.getUserService();
  DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();

  doGet(...){
    userService.doSomething(...);
  }
...
}

这可能是一个过早的优化,但我只是想知道为每个请求获取服务的成本是多少。请分享您的见解。

最佳答案

在 google 组线程中 http://groups.google.com/group/google-appengine-java/browse_thread/thread/d3f1536084f59c22 ,Ikai Lan(来自 Google 的 GAE 团队)说 MemcacheService 是线程安全的,但是缓存它没有用,因为每次从工厂获取服务时都只有一个对象分配。

由于所有服务都是以类似的方式获取的,我认为我们可以假设它们都遵循相同的设计并且都是线程安全的。但由于在每次查询时获取新实例的成本并不高,因此我不会缓存它们。

关于java - Google App Engine (java) 服务类是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5128106/

相关文章:

java - 打印递归树

python - 如何最好地在 Google App Engine Python 上每 x 秒运行一次函数

google-app-engine - 只有一个实体的跨组交易错误

google-app-engine - 谷歌应用引擎评论并在 html View 中检查开发环境

java - Maven:在一个阶段运行插件两次,与另一个插件交错

java - 编译错误: class cannot be instantiated

java - 与 Jersey 的意外 REST 映射

java - 尝试关闭并由用户输入来更改值

android - Google Cloud Datastore 与 google drive 与其他存储服务的数据备份

php - upload_max_filesize、php.ini 和 Google App Engine