Google app engine 在Google App Engine上部署时,在静态字段中存储数据是否线程安全?
我在浏览Google App Engine上托管的开源CMS的代码(我认为这是一个很棒的主意),我在课堂上偶然发现了以下代码: 我从未使用过GAE,但这听起来真的很奇怪Google app engine 在Google App Engine上部署时,在静态字段中存储数据是否线程安全?,google-app-engine,concurrency,static,thread-safety,thread-local,Google App Engine,Concurrency,Static,Thread Safety,Thread Local,我在浏览Google App Engine上托管的开源CMS的代码(我认为这是一个很棒的主意),我在课堂上偶然发现了以下代码: 我从未使用过GAE,但这听起来真的很奇怪 GAE真的是“单线程”吗?使用GAE时,将请求范围的数据存储在静态字段中是否安全 这是否意味着,对于每个JVM实例,一次只执行一个HTTP请求,而所有其他请求都在等待 这是一个常见的GAE成语吗?如果不是,在请求期间存储这样一个用户实体的最佳GAE习惯用法是什么?这里不应该像在SpringSecurity中那样使用Thread
- GAE真的是“单线程”吗?使用GAE时,将请求范围的数据存储在静态字段中是否安全
- 这是否意味着,对于每个JVM实例,一次只执行一个HTTP请求,而所有其他请求都在等待
- 这是一个常见的GAE成语吗?如果不是,在请求期间存储这样一个用户实体的最佳GAE习惯用法是什么?这里不应该像在SpringSecurity中那样使用ThreadLocal吗?或者某种作用域bean(由依赖项注入容器管理)
/**
* Current user session value cache class. Due to GAE single-threaded nature
* we can cache currently logged in user in static property. Which we set in
* authentication filter.
*/
public class CurrentUser {
private static UserEntity user;
public static UserEntity getInstance2() {
return user;
}
public static void setInstance2(UserEntity aUser) {
user = aUser;
}
}