我有一堆關於提升線程的問題嗎?Boost Thread ID無效
- 如何使用線程構造函數初始化boost線程ID?
- 爲什麼線程ID在調用join()函數後變得無效?
- 像往常一樣,類成員函數是複製到線程內部存儲爲了執行成員函數,但我發現有人只是將boost線程封裝在類中。 這是什麼目的?
另一方面,我們允許繼承boost線程嗎? 請幫忙。
謝謝。
我有一堆關於提升線程的問題嗎?Boost Thread ID無效
另一方面,我們允許繼承boost線程嗎? 請幫忙。
謝謝。
boost::thread
對象的ID是get_id()
成員函數:boost::thread t(do_something);
boost::thread::id tid=t.get_id();
你可以通過調用boost::this_thread::get_id()
獲得當前線程的ID。
線程退出後線程ID值仍然有效,這與某些OS線程庫的線程ID不同。
如果您傳遞成員函數的地址和對象的地址,則可以在新線程上對該對象運行成員函數。因此,您可以在成員函數中啓動線程,並將this
作爲對象指針。這允許新線程通過類實例的數據成員共享數據。
你可以從boost::thread
得到,但它不會真的讓你在任何地方,因爲沒有虛函數。
對2的回答:因爲調用連接等待,直到線程終止,並且變爲無效。
雖然線程終止,但其他一些數據仍然有效。請解釋。 – peterwkc 2010-09-03 07:43:16