線程本地存儲是否在其他任何地方使用,而不是使全局變量和靜態變量局部於線程?它在我們編寫的任何新代碼中有用嗎?其他地方使用線程本地存儲?
2
A
回答
4
TLS在新代碼中肯定會很有用。如果你想要一個全局變量,它必須是每個線程的特定變量(例如C/C++中的errno
),那麼線程本地存儲就是要走的路。
0
這幾天errno
通常放在線程本地存儲。
在某些情況下(例如:需要啓動代碼的DLL等共享庫)使用線程本地存儲會成爲問題。
1
線程特定的單例對象?一個多線程Web服務器,其中每個線程處理一個請求,一些TLS數據的可能性相當大(如請求URL或某些數據庫連接,如果需要,本質上某些資源可用於請求處理過程中的任何時間點),以便在需要時可以輕鬆訪問代碼中的任何地方。
+0
omfg的S字... :( – 2010-08-25 06:39:16
+0
Singleton。Global。相同的區別。 – 2012-10-22 16:53:13
0
我只需要它爲特定線程錯誤處理和優化(在C):
__thread int cpfs_errno;
static __thread struct Cpfs *g_cpfs;
在這個例子中,這節省了我路過的struct Cpfs *
上下文指針經過幾十個功能,其中它永遠不會改變。
相關問題
- 1. 線程本地存儲
- 2. sencha touch本地存儲和其他webservice
- 3. 線程本地存儲功能
- 4. 訪問線程本地存儲
- 5. 線程本地存儲工作原理
- 6. 關於TBB線程本地存儲
- 7. 線程本地存儲內存使用情況
- 8. 線程本地,類實例本地存儲?
- 9. HTML5:使用本地存儲
- 10. 使用HTML5本地存儲
- 11. 在其他地方使用相同SP中的存儲過程的計算列
- 12. 我如何使用線程本地存儲(TLS)?
- 13. 如何在使用TPL時管理線程本地存儲(TLS)?
- 14. 將用戶存儲在上下文中還是其他地方?
- 15. 本地存儲的教程?
- 16. .Net:邏輯線程和線程本地存儲?
- 17. 離線緩存和本地存儲的iOS Web應用程序
- 18. 使用__declspec(線程)的線程本地存儲在C++/CLI中失敗
- 19. 我如何使用邊PHP的HTML5本地存儲,用於PHP會話,並存儲其他信息,PHP使用
- 20. 如何告訴VIM在其他地方存儲viminfo文件?
- 21. Git倉庫與git目錄存儲在其他地方
- 22. 在其他地方存儲GNU make生成的文件
- 23. 在其他地方存儲res/drawable圖像Android?
- 24. 克隆git存儲庫並在其他地方導入對象
- 25. Javascript本地存儲弄亂其他代碼
- 26. 無法讀取其儲存在本地
- 27. 如何在數組中存儲值然後在其他地方使用?
- 28. 使用其他存儲過程的存儲過程列表
- 29. 線程本地
- 30. 線程本地存儲在backgroundworker調用之間是否持久?
java.text.DateFormat就是一個很好的例子。您可以重用它,但它不是線程安全的,因此每次安全使用DateFormat而不創建新的一種好方法是將其存儲在ThreadLocal中。 – cjstehno 2009-11-23 18:22:52