【问题标题】:Porting an application with fork() to pthread_create()使用 fork() 将应用程序移植到 pthread_create()
【发布时间】:2011-09-24 02:08:51
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: iphone pthreads fork porting


    【解决方案1】:

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

    顺便说一句,虽然 pthreads 在 iOS 上可用并且可以完美运行,但强烈建议您使用 iOS 中可用的其他技术。更多详情,请阅读

    Concurrency Programming Guide

    特别是名为“从线程迁移”的部分。

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

    Threading Programming Guide

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2017-05-21
      • 2010-11-29
      • 2011-08-04
      • 2014-05-28
      • 2011-02-27
      • 2015-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多