boost線程庫有一個abstraction for thread specific (local) storage。我已經瀏覽了源代碼,並且似乎TSS功能可以在任何現有線程的應用程序中使用,而不管它是從boost :: thread --ie創建的天氣,這意味着某些回調在內核中註冊爲掛鉤在回調函數中,當線程或進程超出範圍時可以調用任何TSS對象的析構函數。我發現了這些回調。提升線程特定存儲問題(boost/thread/tss.hpp)
我需要從各種網絡服務器的工作線程中的OpenSSL中緩存HMAC_CTX(請參閱this,詳細,我正在嘗試做什麼的問題),因此我不控制線程的生命週期 - 網絡服務器呢。因此,我將在未由boost :: thread創建的線程上使用TSS功能。
我只是想在我開始實施緩存邏輯之前驗證我的假設,我的邏輯中是否有任何缺陷?
謝謝!你的眼球受到讚賞。 – 2010-04-13 08:21:54