0
這是一個線程問題,我基本上開始製作一個線程安全的庫。我的用例如下 -關於使用QThreadStorage的線程安全
struct <>
{
int thread_specific_value;
}
1)例如旋轉5個線程。
2)例如,每個線程在上述數據結構中進行操作並存儲thread_specific_value。這在每個線程的初始化時動態分配並添加到QThreadStorage中。
3)一旦所有的線程返回到主線程,我喜歡訪問所有線程的errno值並做一些處理。在我從主線程刪除線程之前,我可以獲取其存儲數據的信息並存儲在主線程的特定存儲中。
簡而言之,我如何遍歷所有線程特定的存儲數據的QThreadStorage並從主線程執行一些處理?
感謝您的回覆。正如我剛纔所說,我沒有刪除線程。因此,根據文檔,線程特定的數據不會被破壞。是否有任何其他自定義開源線程存儲數據結構,我可以使用它可以使用此可訪問性? 「 – Kartlee
」QThreadStorage獲取數據的所有權(必須在堆上創建新數據),並在線程退出時(通常或通過終止)將其刪除。「 - 當它終止時,而不是當它被刪除。儘管將自己的數據通信方法從線程傳遞出來並不困難,並且在用例方面有足夠的差別,我不知道任何真正標準化的方法......(另外暴露TLS是非常罕見的用例.. ) – bdonlan
我們仍然可以使用QThreadStorage進行某種線程間通信。比如說,用一些被普通函數識別的標記來標記線程。我用它來識別代碼運行的線程的「名稱」。 – AlexanderVX