對不起本週洪水這麼多問題。C++ boost線程ID和Singleton
我假設thread.get_id
返回的線程索引是特定於實現的。 在pthreads的情況下,索引是否重用? IE,如果線程0運行並且加入,線程啓動後綴會有不同的ID?
我問這個問題的原因是需要實現一個帶有扭曲的Singleton模式:每個線程都有自己的實例。我知道這聽起來很瘋狂,但是線程控制硬件(cuda),即使在線程級別,它也不允許設備內存共享。
什麼是實現這種模式的好方法?
對不起本週洪水這麼多問題。C++ boost線程ID和Singleton
我假設thread.get_id
返回的線程索引是特定於實現的。 在pthreads的情況下,索引是否重用? IE,如果線程0運行並且加入,線程啓動後綴會有不同的ID?
我問這個問題的原因是需要實現一個帶有扭曲的Singleton模式:每個線程都有自己的實例。我知道這聽起來很瘋狂,但是線程控制硬件(cuda),即使在線程級別,它也不允許設備內存共享。
什麼是實現這種模式的好方法?
對於每個線程都有自己的實例的全局(單例),請使用線程本地存儲。 Boost有thread_specific_ptr這個。
啊,很好。正是我想要的 – Anycorn 2010-04-18 20:14:55
你不能使用TLS的單身數據? – 2010-04-18 20:11:23
@neil我不知道TLS是什麼。編輯:從來沒有,線程本地存儲 – Anycorn 2010-04-18 20:12:25
TLS ==線程本地存儲 - 屬於特定線程的內存 – 2010-04-18 20:14:55