5

有人告诉我 iPhone 不支持多任务和多线程。这对我来说没有意义,所以我在模拟器上进行了测试:pthreads 有效,fork() 无效。这个结果对我来说确实有意义,但现在我不确定:pthread 库是否也可以在真实设备上运行?

谢谢。

4

4 回答 4

10

多线程将起作用。这是多任务处理,不会。iphone 不会让超过一个第三方应用程序同时运行。这种推理使得 fork 在应用程序的沙箱之外存在。

您可以创建线程来轮询套接字、读取文件、随心所欲地处理 AI 播放器,或者直到性能提升开始消失。

于 2009-07-27T16:09:25.460 回答
3

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

于 2009-07-27T16:28:08.823 回答
1

最有可能的。

默认情况下禁用多任务处理,以防止应用程序产生一堆进程并减慢 iPhone 速度或做恶意事情。

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

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

正如你所说,pthreads 工作而 fork() 没有,所以它的逻辑它也适用于真正的线程。

于 2009-07-27T16:07:19.037 回答
0

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

于 2009-07-27T16:22:04.577 回答