我在为多核心设备编写代码时有一些疑问。最初,iPhone 3GS之前的iPhone都是单核CPU。所以,当我为3GS做应用程序时,如果我在多线程中编写代码,那么如果我在iPhone 4或iPad 2(双核)中运行应用程序,iOS会将这些多线程分配给不同的内核吗?或者,从开发人员的角度来看,有什么事情可以收获多核CPU功能的好处吗。这是iOS为不同内核分配不同线程的责任吗?还假设有一个函数需要很长时间才能执行,我在current线程中调用这段代码(没有创建多个线程)iOS是否将大任务拆分为两个较小的任务并在不同的核心中执行?
如果使用线程原语编写代码,操作系统将自动处理核心管理。
此外,如果您使用GCD,它将为您优化核心和线程管理。
最重要的是,使用GCD(直接或通过NSOperationQueue等助手),系统将自动调整对系统CPU资源的访问,无论您使用的是单CPU架构还是多CPU架构。