使用fork()将应用程序移植到pthread_create()

时间:2011-06-28 07:32:17

标签: iphone pthreads fork porting

我正在将一个Linux应用程序移植到iphone上,我想知道我需要做多少重写才能使它成为多线程应用程序而不是多进程应用程序。

另外,如果我只是通过调用另一个线程上的函数来替换forked代码,我会在执行流程中看似随机的地方获得exec_bad_address ...有谁知道为什么会出现这种情况?

谢谢!

1 个答案:

答案 0 :(得分:2)

在将应用程序转换为unix平台上的多线程应用程序时,您将完成同样的工作。简单地用pthread_create()调用替换分叉代码 - 几乎总是 - 不够。例如,您可能需要重写支持进程间通信的所有代码。假设一个进程分叉另一个进程,然后这两个进程通过管道进行通信。当然,这将不再适用。等等。你明白了。

顺便说一下,虽然pthreads可以在iOS上完美运行,但我们强烈建议您使用iOS中提供的其他技术。有关其他详细信息,请阅读

Concurrency Programming Guide

特别是“远离线程迁移”一节。

有关线程的详细信息,请参阅

Threading Programming Guide