2011-11-22 32 views
2

我可以將struct傳入pthread_create作爲線程參數。可以通過線程修改pthread_create參數嗎?

但是有可能在線程中修改這個結構,這樣當線程終止時,主程序可以訪問這個結構來獲得修改後的數據嗎? 如果是這樣,我是否需要將結構強制轉換回線程中的void?

回答

3

是的 - 假設線程函數通過指針傳遞結構,您可以修改它指向的結構。

不 - 不需要將結構強制轉換回線程中的void;事實上,我不太清楚你在想什麼,但沒有必要這麼做。線程函數獲取一個void *參數。它會將其轉換爲struct whatever *;它可以參考。

只要確保任何其他線程都可以修改結構,那麼您正在協調更改。

1

是的,這是可能的,只是在線程完成之前不要觸摸數據。至少不是沒有保護。

+0

感謝您的簡潔回答! – yongtw123

相關問題