MST

星途 面试题库

面试题:Objective-C中NSOperationQueue如何实现任务的优先级控制

在Objective-C多线程开发里,使用NSOperationQueue来管理任务。请阐述如何通过NSOperationQueue实现不同任务之间的优先级控制,并且说明NSOperation类中与优先级相关的属性及其作用。
38.5万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

1. 通过NSOperationQueue实现任务优先级控制

  • 设置NSOperation的优先级:在将NSOperation对象添加到NSOperationQueue之前,可以设置NSOperation的优先级。NSOperation有一个queuePriority属性用于设置优先级。
NSOperation *operation1 = [[NSOperation alloc] init];
operation1.queuePriority = NSOperationQueuePriorityHigh;
NSOperation *operation2 = [[NSOperation alloc] init];
operation2.queuePriority = NSOperationQueuePriorityLow;

NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperation:operation1];
[queue addOperation:operation2];
  • 优先级规则:当NSOperationQueue执行任务时,会优先执行优先级高的任务。NSOperationQueuePriority有以下几种优先级级别:
    • NSOperationQueuePriorityVeryHigh:非常高的优先级。
    • NSOperationQueuePriorityHigh:高优先级。
    • NSOperationQueuePriorityNormal:普通优先级(默认)。
    • NSOperationQueuePriorityLow:低优先级。
    • NSOperationQueuePriorityVeryLow:非常低的优先级。

2. NSOperation类中与优先级相关的属性及其作用

  • queuePriority属性
    • 作用:用于设置NSOperationNSOperationQueue中的执行优先级。优先级高的操作会比优先级低的操作优先被NSOperationQueue调度执行。
    • 类型NSOperationQueuePriority枚举类型,如上述提到的不同优先级级别。