了解iOS中的多线程



我试图更详细地了解iOS的多线程。我浏览了一些类引用,例如NSThreadNSRunLoopNSTask ..

首先如下所示:使用Runloop

RunloopThread内运行。

那么,为什么我们需要在应用程序中定义自己的Runloop?对于NSThread,这很有用,因为某些耗时的过程可以在单独的线程中运行,因此该应用程序仍将在主线程上响应。

与线程运行循环进行交互,如果您有一个线程,该线程要定期继续进行。也就是说,跑步循环将完成一些工作,然后完成工作后,它会使线程休息一段时间,然后在以后的时间恢复工作 - 有效防止线程退出。您不需要与他们进行互动,也不需要定期配置/自己创建它们(如果您使用高级摘要(例如基础),因为基础会在大多数情况下代表您设置它们,只有一小部分应用程序才有资格)。

如果您的次要线程仅执行指定任务,并且需要等待某些外部事件(例如,下载要完成),您将(通常)(通常)不需要与运行循环进行交互。

您可能会考虑考虑使用NSOperationQueuesNSOperationsNSBlockOperations,因为这些将自行管理,将允许取消任务,并且可以在主和背景线程上安排。

<</p> <</p>

最新更新