IOS基础NSOperation的操作优先级和操作依赖
IOS基础NSOperation的操作优先级和操作依赖
- 操作优先级
// ViewController.m
// 34-操作优先级
// Created by 鲁军 on 2021/3/9.
#import "ViewController.h"
@interface ViewController ()
//全局队列
@property(nonatomic,strong)NSOperationQueue *queue;
@end
@implementation ViewController
-(NSOperationQueue *)queue{if(_queue==nil){_queue = [[NSOperationQueue alloc] init];//设置最大并发数 (并不是线程数字)//_queue.maxConcurrentOperationCount = 2;}return _queue;
}
- (void)viewDidLoad {[super viewDidLoad];//操作1NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{for(int i=0;i<20;i++){NSLog(@"op1 = %d",i);}}];//设置优先级最高op1.qualityOfService = NSQualityOfServiceUserInteractive;[self.queue addOperation:op1];[op1 setCompletionBlock:^{//执行在子线程上的NSLog(@"===========op1 操作完成执行的=========%@",[NSThread currentThread]);}];//操作2NSBlockOperation *op2 = [NSBlockOperation blockOperationWithBlock:^{for(int i=0;i<20;i++){NSLog(@"op2 = %d",i);}}];//设置优先级最低op2.qualityOfService = NSQualityOfServiceBackground;[self.queue addOperation:op2];
}
@end
- 操作依赖
//
// ViewController.m
// 35-操作依赖
//
// Created by 鲁军 on 2021/3/9.
//#import "ViewController.h"@interface ViewController ()
//全局队列
@property(nonatomic,strong)NSOperationQueue *queue;
@end
@implementation ViewController
-(NSOperationQueue *)queue{if(_queue==nil){_queue = [[NSOperationQueue alloc] init];//设置最大并发数 (并不是线程数字)//_queue.maxConcurrentOperationCount = 2;}return _queue;
}
- (void)viewDidLoad {[super viewDidLoad];//下载 解压 升级完成NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{NSLog(@"下载");}];NSBlockOperation *op2 = [NSBlockOperation blockOperationWithBlock:^{[NSThread sleepForTimeInterval:2.0];NSLog(@"解压");}];NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{NSLog(@"升级完成");}];//设置操作间的依赖[op2 addDependency:op1];[op3 addDependency:op2];//会发生循环依赖 ,什么都不操作//操作添加到队列中[self.queue addOperations:@[op1,op2] waitUntilFinished:NO];//依赖关系可以跨队列[[NSOperationQueue mainQueue] addOperation:op3];
}@end
IOS基础NSOperation的操作优先级和操作依赖相关推荐
- ios基础篇(十四)—— 操作依赖、操作缓存池
一.NSOperation VS GCD GCD GCD是iOS4.0 推出的,主要针对多核cpu做了优化,是C语言的技术 GCD是将任务(block)添加到队列(串行/并行/全局/主队列),并且以同 ...
- iOS基础问答面试题连载-附答案
2017-02-02 timhbw CocoaChina 以下是一些自己收集的比较基础的问题(大神可以忽略),附上答案,方便大家阅读.俗话说得好,基础不牢,地动山摇.文章末尾会提供PDF版的文档,方便 ...
- iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
接上篇 iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录.包括真机的沙盒的目录. 1.获取程序的Home目录 [cpp] view plaincopy N ...
- 大数据基础系列 5:Hadoop 实验——熟悉常用的 HDFS 目录操作和文件操作
文章目录 前言 一.实验目的 二.实验平台 三.实验内容和要求 3.1.HDFS 目录操作 3.1.1.创建用户目录 3.1.2.显示 HDFS 中与当前用户对应的目录内容 3.1.3.列出 HDFS ...
- python 新建文件 hdfs_python基础操作以及hdfs操作
一.前言 作为一个全栈工程师,必须要熟练掌握各种语言...HelloWorld.最近就被"逼着"走向了python开发之路,大体实现的功能是写一个通用类库将服务器本地存储的文件进行 ...
- Android游戏开发基础part4--Bitmap位图的渲染与操作
游戏开发基础part4--Bitmap位图的渲染与操作 知识点1:Bitmap与BitmapFactory 如果想通过一张图片资源文件创建一个位图,则要通过位图工厂来索引图片资源文件,从而生成一张位图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- DNS 基础知识及 Linux DNS 服务器操作知识
一.DNS域名结构与域名服务器 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址.域名系统其实就是名字系统.为什么不叫&quo ...
- 数字化方法基础(四)_矩阵操作
数字化方法基础(四)_矩阵操作 Chapter 7 矩阵操作 利用矩阵实现向量平移 使用矩阵实现向量旋转 如何让图形既平移又旋转 坐标系的旋转 让图形显示在屏幕中心且绕中心转动 全部教程链接: htt ...
最新文章
- 通过regedt查看计算机密码,win10系统通过注册表设置定时更换密码提醒的处理步骤...
- 部署tomcat环境
- [转]CSS3 transform顺序问题
- Zabbix监控华为交换机CPU、温度并显示到拓扑图
- php发表图片文章代码,最新PHP图片上传的一个例子的文章【延伸阅读】
- 【NLP】NLP提效,除了选择合适的模型,就是数据增强了
- 论文浅尝 | 将结构预测作为增广自然语言间的翻译任务
- 易语言源代码毁来者来了!!
- PyQt5笔记(05) -- 绝对位置
- java c语言 实现des算法_C语言实现DES算法
- 二级VB培训笔记05:文件操作
- VS2010中的顺序图
- 五大服务顺序_百度大脑5.0技术干货:详解飞桨五大优势,鸿鹄芯片架构细节
- HTML - 'MARQUEE'
- 代码评审 16.7.1
- VirtualBox添加USB 3.0控制器扩展
- Java简繁体汉字转化
- javascript 中时区知识的整理 UTC GMT
- spring boot 配置文件properties,yml语法学习及属性获取@ConfigurationProperties和@Value
- 聚焦Java性能优化 打造亿级流量秒杀系统【学习笔记】09_防刷限流技术
热门文章
- java epoll select_最新阿里、拼多多、快手Java岗面试题269 道送答案
- 三菱plc编程实例3000_三菱入门PLC编程PLC系统程序包括哪些
- 10G_Ethernet_04 10G Ethernet Subsystem IP 的快速验证(万兆以太网IP的快速验证)
- 计算机基础与组装,1.计算机基础与组装.pptx
- java实现简易聊天窗口先运行服务器还是客户端_一个简易聊天功能的服务器端和客户端源码...
- unity添加对象实例_【Unity】6.3 通过 C# 脚本创建和访问游戏对象
- 电路基本概念有哪些?
- pdf导入ps颜色太浅_PDF 文件编辑转换难?或许你需要一个扫描全能王!
- java+分支合并主线_git如何合并两个远端分支?
- 看《长安十二时辰》可以了解哪些算法知识