2011-06-28 25 views
0

我正在將一個linux應用程序移植到iphone,我想知道爲了使其成爲多線程應用程序而不是多進程應用程序。另外,如果我簡單地用另一個線程上的函數調用分叉代碼,我會在執行流程中看似隨機的地方獲得exec_bad_address ...有誰知道爲什麼會出現這種情況嗎?使用fork將應用程序移植到pthread_create()

謝謝!

回答

2

這與您在將應用程序轉換爲unix平臺上的多線程應用程序時完全一樣。用pthread_create()調用簡單地替換分叉代碼幾乎總是不夠。例如,您可能需要重寫所有支持進程間通信的代碼。說一個進程分叉另一個進程,然後這兩個進程通過管道進行通信。當然,這不會工作了。等等你明白了。

順便說一句,雖然pthreads可用並且完美地在iOS上工作,但強烈建議您使用iOS中提供的其他技術。有關詳細信息,請閱讀

Concurrency Programming Guide

特別

一節「從線程離開遷移」。

有關線程的詳細信息,請參閱

Threading Programming Guide

相關問題