我使用AIX/HP-UX/LINUX這個代碼,但是當我嘗試在Mac OS X上運行它,它不工作得好:的pthread_t在Mac OS X是NULL
pthread_t m_thread;
int merror;//thread return
cout << "init" << endl;
if (m_thread != NULL){
cout << "running" << endl;
merror= pthread_create(&m_thread, NULL, _exec, NULL);//initialize thread
}
在Linux pthread被創建並且正在運行的消息出現在屏幕上。 但是在Mac os x上,m_thread返回null,所以不能在MAC OS X上執行相同的代碼,有人知道它爲什麼會發生。
的編譯代碼:G ++ -g -o sclient sclient.cpp socket.cpp -pthread -lpthread -thread
討厭這麼說,但是你的代碼對我沒有任何NULL返回值(MacOS 10.7.3) – 2012-03-01 21:56:16
你是否收到錯誤?你的代碼在'pthread_create'返回後做了什麼? (如果你結束這個過程,線程可能沒有機會運行。) – 2012-03-01 22:03:52
解決了,我不知道爲什麼在Linux上測試返回它的好,所以我刪除了測試。 – Lefsler 2012-03-02 00:16:13