我有一個使用命名空間組織數據的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我將添加您的問題作爲一個更多的回答。希望您對我的分析有所回顧。謝謝 –