有人告诉我 iPhone 不支持多任务和多线程。这对我来说没有意义,所以我在模拟器上进行了测试:pthreads 有效,fork() 无效。这个结果对我来说确实有意义,但现在我不确定:pthread 库是否也可以在真实设备上运行?
谢谢。
多线程将起作用。这是多任务处理,不会。iphone 不会让超过一个第三方应用程序同时运行。这种推理使得 fork 在应用程序的沙箱之外存在。
您可以创建线程来轮询套接字、读取文件、随心所欲地处理 AI 播放器,或者直到性能提升开始消失。
是的,pthread
图书馆可以在 iPhone 上运行。或者,您可以将 Cocoa-native 线程与NSThread
. 多任务处理将不起作用,因为 Apple 明确限制了这一点。
最有可能的。
默认情况下禁用多任务处理,以防止应用程序产生一堆进程并减慢 iPhone 速度或做恶意事情。
iPhone 的 CPU 确实没有那么快,但一次只运行 1 个程序,似乎很快。多任务处理会带来很多开销和其他问题,这会降低 iPhone 的速度。
我实际上不确定多线程,但由于线程包含在您自己的进程中,它们似乎很可能会工作。
正如你所说,pthreads 工作而 fork() 没有,所以它的逻辑它也适用于真正的线程。
多线程是非常可能的——iPhone 实际上使用了与 Mac 上相同的 Cocoa 线程 API。我编写了一个协作绘图应用程序,它使用 6 个线程来处理绘图、网络通信等。我认为创建太多线程是个坏主意,因为 iPhone 只有一个处理器。不过,根据我的经验,它们工作得很好!