我有一个使用命名空间组织数据的GAE应用程序。我的问题是 - 命名空间是以每个线程为基础还是以每个实例为基础进行管理?如果我在GAE配置中启用线程安全,是否有可能在一个线程中设置命名空间会影响其他线程?GAE命名空间是否可以安全地用于线程安全?
2
A
回答
0
它看起来像名称空间是GAE/J上的线程安全。
- 命名空间设置为一个查询字符串参数
- 循环25秒,记录的命名空间,每5秒,该线程一起:
这已经通过运行简单的servlet,做以下的测试ID
- 调用servlet 3次用三种不同的命名空间,与每个呼叫之间
10秒的暂停随着<线程> true </threadsafe >在appengine-web.xml中设置,所有请求都由同一个实例处理。通过检查应用引擎控制台中正在运行的实例的数量以及检查每个请求的日志来验证这一点。每个日志条目都有一个条目,如:instance = 00c61b117c8e9fd8aa8b02bff53de32a49b20e。在同一个实例中,在线程上设置名称空间不会影响其他线程上的名称空间。
要确认配置中的线程安全设置正常,它被设置为false并进行相同的测试运行。正如所料,每个请求都会创建一个新实例。
5
set_namespace()
使用os.environ
:
def set_namespace(namespace):
...
os.environ[_ENV_CURRENT_NAMESPACE] = namespace
和os.environ
已经修补使用线程本地存储。
所以是的,名称空间是线程安全的。
+0
你知道这是否也适用于Java实现? – snae
相关问题
- 1. 检查是否为空线程安全?
- 2. STL是否为空()线程安全?
- 3. 是否Box.add()线程安全?
- 4. 是否mysql_insert_id线程安全?
- 5. NashornScriptEngine是否线程安全?
- 6. RegExp.MatchString是否线程安全?
- 7. SeekableStream是否线程安全?
- 8. 是否log4j线程安全?
- 9. NSPasteboard是否线程安全?
- 10. LIBSVM是否安全线程
- 11. epoll是否线程安全?
- 12. 是否NotifyPropertyChanged线程安全?
- 13. 部分线程安全是否使Java类线程安全?
- 14. 以下代码是否线程安全
- 15. 它是否可以安全地用于不同线程的一个功能?
- 16. 命名空间的wsse:安全
- 17. 线程是否表示线程安全?
- 18. 从命名空间返回对象是否安全?
- 19. 使用“不安全”线程函数是否安全?
- 20. java线程安全:线程安全吗?
- 21. 可以将Parallel.ForEach安全地用于CloudTableQuery
- 22. AUTO_INCREMENT是否可以安全地用于MySQL中的BEFORE TRIGGER中
- 23. 是否可以同时从多个线程调用write()安全?
- 24. 一个对象是否可以说是线程安全的?
- 25. 基于命名空间或基于URI的弹簧安全
- 26. 安全地检查'this`是否为空
- 27. 这种编码线程是否安全,死锁安全?
- 28. TheadFactoryBuilder线程安全生成的ThreadFactory是否安全?
- 29. 是System.ServiceModel.Channels.BufferManager是否线程安全?
- 30. Android FragmentTransaction.replace()是否是线程安全的?
我已经写了一个线程安全分析,并在我的博客上发表评论(尽管GAE/J为导向)http://devcon5.blogspot.com我将添加您的问题作为一个更多的回答。希望您对我的分析有所回顾。谢谢 –