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

克达比尔:

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

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

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

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

JB Nizet:

在google小组线程http://groups.google.com/group/google-appengine-java/browse_thread/thread/d3f1536084f59c22中,Ikai Lan(来自Google GAE小组)说MemcacheService是线程安全的,但是可以对其进行缓存没什么用,因为每次您从工厂获得服务时,只有一个对象分配。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章