代码之家  ›  专栏  ›  技术社区  ›  noamtm

iPhone:多任务,多线程?

  •  5
  • noamtm  · 技术社区  · 17 年前

    我被告知iPhone不支持多任务和多线程。这对我来说没有意义,所以我测试了一下 在模拟器上 这个结果 做 对我来说是有意义的,但现在我不确定:pthread库是否也能在真正的设备上工作?

    谢谢

    4 回复  |  直到 17 年前
        1
  •  10
  •   Ball    17 年前

    多线程将起作用。多任务处理是不行的。iphone不允许同时运行多个第三方应用程序。这种推理使fork活在应用程序的沙箱之外。

        2
  •  3
  •   pix0r    17 年前

    是的 pthread 图书馆将在iPhone上运行。或者,您可以将Cocoa本机线程用于 NSThread . 多任务处理将不起作用,因为苹果明确限制了这一点。

        3
  •  1
  •   foobarfuzzbizz    17 年前

    很有可能。

    默认情况下,多任务是禁用的,以防止应用程序产生大量进程,或者减慢iPhone速度,或者进行恶意操作。

    iPhone的CPU真的没有那么快,但一次只运行一个程序,速度似乎很快。多任务处理会带来很多开销和其他问题,这些问题会使iPhone的速度变慢。

    实际上我并不确定多线程,但由于线程包含在您自己的进程中,所以它们似乎可以工作。

    正如您所说,pthreads工作,fork()不工作,因此它在逻辑上也可以在真实的线程上工作。

        4
  •  0
  •   Ben Gotow Dmitry Nogin    17 年前

    多线程是非常可能的-iPhone实际上使用了Mac上可用的相同Cocoa线程API。我编写了一个协作绘图应用程序,使用6个线程来处理绘图、网络通信等。我认为创建太多线程是个坏主意,因为iPhone只有一个处理器。但以我的经验来看,它们工作得很好!

    推荐文章