小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
iOS中印象任务执行速度的因素有以下几种。
CPU的调度情况- 任务的复杂度
- 任务的优先级
- 线程状态
目前
iOS中,线程优先级的threadPriority属性已经弃用,被NSQualityOfService类型的qualityOfService所代替
typedef NS_ENUM(NSInteger, NSQualityOfService) {
NSQualityOfServiceUserInteractive = 0x21,
NSQualityOfServiceUserInitiated = 0x19,
NSQualityOfServiceUtility = 0x11,
NSQualityOfServiceBackground = 0x09,
NSQualityOfServiceDefault = -1
}
API_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0));
NSQualityOfService:服务质量。用于表示工作的性质和对系统的重要性。当存在资源争用时,使用高质量的服务类比使用低质量的服务类获得更多的资源
NSQualityOfServiceUserInteractive:用于直接涉及提供交互式UI的工作。例如:处理控制事件或在屏幕上绘图NSQualityOfServiceUserInitiated:用于执行用户明确要求的工作,并且为了允许进一步的用户交互,必须立即显示这些工作的结果。例如:在用户在邮件列表中选择邮件后加载邮件NSQualityOfServiceUtility:用于执行用户不太可能立即等待结果的工作。这项工作可能是由用户请求的,也可能是自动启动的,并且通常使用非模式进度指示器在用户可见的时间尺度上操作。例如:定期内容更新或批量文件操作,如媒体导入NSQualityOfServiceBackground:用于非用户发起或不可见的工作。通常,用户甚至不知道正在进行这项工作。例如:预抓取内容、搜索索引、备份或与外部系统同步数据NSQualityOfServiceDefault:表示没有明确的服务质量信息。只要可能,适当的服务质量是根据可用的资源确定的。否则,使用NSQualityOfServiceUserInteractive和NSQualityOfServiceUtility之间的服务质量级别