Google App Engine(java)服务类是否为线程安全?

kda*_*bir 5 java google-app-engine

是否可以从工厂获得对服务的引用并将其用于处理多个请求?最好使用以下伪代码来解释servlet:

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

  doGet(...){
    userService.doSomething(...);
  }
...
}
Run Code Online (Sandbox Code Playgroud)

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

JB *_*zet 7

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

由于所有服务都以类似的方式获得,我认为我们可以假设它们都遵循相同的设计并且都是线程安全的.但是因为在每个查询中获取新实例并不昂贵,所以我不会缓存它们.