Re: [C++/Pthread]member function => thread???

看板C_and_CPP (C/C++)作者 (哲哲魚)時間24年前 (2000/05/11 20:12), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《leesun.bbs@cszone.twbbs.org (八方齋)》之銘言: : 各位先進: : 小弟用 C++ & Pthread lib在Linux上寫了一個multi-thread的程式, : 發現若是將member function傳給pthread_create()當參數的話,將無法正確執行, : 小弟覺得十分納悶,是compiler偷偷動了什麼手腳嗎?還是pthread有其專用的 : C++ lib? C++ 的 member function 會「偷偷的」傳一個 this 進去,所以是不能直接傳給 pthread 當參數的。如果是 static member function 就可以。 當然,傳給 pthread 的 function 可以有一個參數,所以你可以把 this 傳進去試試。 不過,比較保險的做法是這樣: class XXX { public: static void dispatcher(void* obj) { (XXX*)obj->do_the_thing(); } void do_the_thing(); // ... }; 然後把 XXX::dispatcher 傳給 pthread_create,參數則用你要的 object 的指標。 -- ※ 發信站: 批踢踢實業坊(ptt.twbbs.org) ◆ From: ken.csie.ntu.edu.tw
文章代碼(AID): #v6gEV00 (C_and_CPP)
文章代碼(AID): #v6gEV00 (C_and_CPP)