[TwistedFate]多线程编程NSOperation

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

常用开启多线程的方法

  1. NSOperation 封装一下GCD的方法 提供OC的语法来使用GCD
  2. 2.GCD 官推 可以最大化的发挥多核CPU 是C语言的函数
    • NSOperation 是一个抽象类
    • NSBlockOperation
    • NSInvocationOperation

线程队列

  • 1.串行队列 主线程相当于一个串行队列 队列中的任务 需要一个执行完毕后 再执行下一个
  • 2.并行队列 队列中的任务进行 并发执行 同时开始 未必同时结束

  • 同步:没有开启子线程的能力

  • 异步:拥有开启子线程的能力
  • 任务是什么?
  • 比如说 下载 打印 都是个任务
  • 使用GCD 或者NSOperation 要做的就是 往合适的队列中添加任务 其他的系统会根据队列的类型 开启线程去完成任务

  • 线程之间的通信
    在子线程中 完成耗时的操作完成后需要回到主线程进行UI的刷新….tableView

  • 主线程 与 子线程是独立的 互不干扰

NSOperation

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    //  需要把NSInvocationOperation对象 放进一个队列里 才能完成开启子线程

    //  创建一个队列
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

    //  给队列 设置 最大并发数
    queue.maxConcurrentOperationCount = 1;

    //  开启一个线程(相当于 一个任务)
    NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(download:) object:@"12"];


    //  把任务添加到 队列中
    //  只需要把任务添加进队列中 不需要咱们来操作
    //  会自动执行 不是添加一个任务就开启一个线程
    //  这个操作是系统给咱们的  有的线程 会被系统重复利用(优化)
    [queue addOperation:operation];

    //  往队列中添加任务
    [queue addOperationWithBlock:^{

        //  block中 就是你要添加任务

        NSLog(@"%@",[NSThread currentThread]);

    }];

//      开启一个线程
//    [operation start];



    //  初始化一个任务
    NSBlockOperation *blockOperation = [NSBlockOperation blockOperationWithBlock:^{

        NSLog(@"任务------任务4-----%@",[NSThread currentThread]);


    }];

    //  添加进队列
    [queue addOperation:blockOperation];

}


- (void)download:(NSString *)str{

    NSLog(@"%@",[NSThread currentThread]);
}
山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md 【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。 立即下载

相关推荐

高空作业栏杆检测数据集VOC+YOLO格式230张3类别.md

【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。

[TwistedFate]iOS多线程编程GCD

简介iOS有三种多线程编程的技术,分别是: (一)NSThread (二)Cocoa NSOperation (三)GCD(全称:Grand Central Dispatch) 这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。三种方式的优缺点介绍:1)NSThread: 优点:NSThread 比其他两个轻量级 缺点:需要自己管理线程的

Do not just be a pragrammer 637

从寄存器到驱动:深入解读RFSoC RF-ADC阈值与校准API的底层逻辑

本文深入解析Xilinx RFSoC中RF-ADC的阈值检测与校准API的底层逻辑,涵盖寄存器映射、驱动实现及Gen3增强功能。通过详细代码示例和寄存器操作流程,揭示如何精准控制信号阈值检测与校准时序,提升系统稳定性与性能。特别探讨RF数据转换器在无线通信和雷达信号处理中的关键应用。

weixin_30552811的博客 687

[TwistedFate]滑块UISlider 跑图UIImageView

UISlider初始化及设背景色UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(40, 100, 300, 20)]; slider.backgroundColor = [UIColor redColor];设置轨迹颜色[slider setMinimumTrackTintColor:[UIColor greenColor]

Do not just be a pragrammer 709

CATIA高效设计:自定义快捷键全攻略

本文详细介绍了如何在CATIA中自定义快捷键以提升设计效率。通过减少鼠标依赖、优化工作流程和减轻手腕疲劳,合理设置快捷键可显著提高建模速度。文章提供了从基础设置到高级配置的全流程指南,包括解决冲突、推荐方案及外设扩展建议,帮助用户快速掌握CATIA高效设计技巧。

weixin_42648844的博客 587

基于OSPF技术的某企业网络设计(完整文档+ENSP拓扑图)

主要对网络规划与设计,以企业网络为背景,对某个中型企业网络进行规划设计,该企业总部在南京,在常州有一个分公司,需要实现总部和分公司能够访问外网,能够让分公司内的用户或主机访问总部服务器的资源,并且保证数据的安全性。在这次总部企业网络设计中,考虑到资金的问题,核心层部署2台核心三层交换机,负责转发总部内部用户的流量,并充当内部用户网关,能够实现内部不同网段的用户之间的连通性。对于一些对网络比较敏感的企业或用户,对网络的要求较高,对于网络的稳定性和安全性也有较高的要求。

qq1325513482的博客 2万+

[TwistedFate]Label自适应高度

Label的自适应高度创建一个labelUILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 300, 100)]; label.numberOfLines = 0; label.font = [UIFont systemFontOfSize:16]; label.backgroundColor = [UIColor

Do not just be a pragrammer 683

Python爬虫:抓取交通工具班次数据(公交、地铁等时刻表)

然而,由于这些信息并不总是以开放的API形式提供,因此爬虫技术成为了获取和分析这些数据的有效途径。然而,由于很多公交公司没有公开API,通常我们通过抓取其网页中的时刻表数据来获取信息。通过这些步骤,您可以轻松抓取交通工具的班次信息,并进行进一步的数据分析,辅助交通规划和出行推荐系统的建设。在这篇文章中,我们将演示如何使用Python爬虫技术抓取公交、地铁等交通工具的班次和时刻表数据。我们可以将公交和地铁的数据合并,进行综合分析。我们可以进一步分析地铁班次的发车频率,甚至可以比较不同地铁线路的班次。

2201_76125261的博客 955

[TwistedFate]UISegmentedControl

1

Do not just be a pragrammer 633

RK3288芯片MIPI-DSI显示疑难杂症大揭秘:从点不亮到花屏全攻克

本文针对RK3288芯片MIPI-DSI接口常见的显示异常问题进行系统性分析,提出了完整的排查解决方案。硬件方面,重点检查排线连接、电源供应和散热问题;软件方面,强调屏参配置、驱动版本及时序参数的精确调整。通过两个典型案例(点不亮与花屏)具体说明排查流程,并指出未来优化方向应包括提升芯片抗干扰能力、开发智能自适应驱动程序等。该手册为开发者提供了从基础原理到实际问题的全面指导,能有效缩短故障排查时间,确保显示系统稳定运行。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 661

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

天天酷科研的博客 3189

[TwistedFate]自定义视图

LTView自定义视图的步骤 创建一个继承自UIView的类 重写新类的初始化方法 把想封装的视图添加封装到 新类里面(初始化到新类中) 为了方便外部进行赋值取值 把添加的视图写成属性(别忘了释放内存) 测试一下 自定义视图的好处提高工作效率 大大提高代码的复用性具体实现自定义Label-TextField视图创建LTView类继承自LTView// 将要创建的控件用属性写在.h文件中 @prop

Do not just be a pragrammer 627

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[TwistedFate]初级数据持久化

初级数据持久化沙盒沙盒机制 每一个APP安装到手机上或者模拟器上, 都会自动生成三个文件夹 这三个文件夹叫沙盒 可以理解为这个APP的沙盒 每个APP的文件夹都是相对独立的 只能自己的应用去访问 不可以互相访问 文件夹中 存储的是 代码以外的 所有数据 例如(图片素材 声音 视频 文档等)也就是说 持久化文件(缓存文件)可以存储到 文件夹中 打开沙盒的各个文件夹路径- (void)path{

Do not just be a pragrammer 614

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

[TwistedFate]触摸事件 晃动事件 target/action

触摸事件的方法创建TouchView类 并在根视图控制器里初始化 类里 添加触摸事件响应方法- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"开始摸"); // UITouch保存手指的信息 例如触摸的点 // UITouch *touch = [touches anyObjec

Do not just be a pragrammer 601

[TwistedFate]UIView UILabel

MRC下属性的属性MRC retain assign ARC retain相当于strong 一般修饰对象 assign相当于weak 一般修饰基本数据类型window初始化// 打印满屏的bounds self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelea

Do not just be a pragrammer 575

[TwistedFate]导航视图控制器

导航视图控制器UINavigationController导航控制器,是iOS中最常⽤的多视图控制器之⼀,它⽤来管理多个视图控制器。 导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器 UINavigationController通过栈的⽅式管理控制器的切换,控制⼊栈和出栈来展⽰各个视图控制器 UINavigationController的ContentView⾥始终显⽰栈顶控

Do not just be a pragrammer 562

[TwistedFate]KVO监测Model图片加载

KVO监测Model图片加载使用上一篇的ImageDownLoader类 目的:网络请求数据时,由于图片比较大,加载较慢,可以先加载数据,并显示,而图片可以之后分开加载,加载完再显示详细步骤 在加载数据的model类中添加属性,方法及遵守协议 <ImageDownLoadDelegate> // 请求图片类 @property (nonatomic, retain) ImageDownLoade

Do not just be a pragrammer 549

[TwistedFate]UITableView表视图编辑,移动

UITableView编辑数据准备// 初始化数据 - (void)initializeData{ NSArray *array = @[@"0", @"1", @"2", @"3", @"添加"]; NSArray *array2 = @[@"0", @"1", @"2", @"3", @"4", @"添加"]; self.firstArray = [NSMutableAr

Do not just be a pragrammer 541

[TwistedFate]UITableView表视图

表示图TableView表视图UITableView,iOS中最重要的视图,随处可⻅见。表视图通常⽤用来管理⼀一组具有相同数据结构的数据. 步骤与之前一样,先创建根视图,因为tableView的实现方法比较多,可以创建一个addTableView方法,然后在视图控制器的viewDidLoad中调用.初始化以及代理设置- (void)addTableView{ // 初始化 UITableVie

Do not just be a pragrammer 523

[TwistedFate]多线程编程NSThread

多线程编程进程,线程 正在活动(运行的)一个应用程序,就是一个进程; 每一个进程都至少有一个线程,主线程 线程:每一个线程都是独立的,可以执行任务 除了主线程,剩下的都是子线程,子线程可以有很多个 ,但是线程是耗费资源的(一般不超过5条,3条为佳) 主线程操作的任务:一半时间UI界面的现实,按钮的点击,屏幕滚动,基本一切用户能看见的操作均在主线程中操作 比较大的耗时操作都可以在子线程中操作 比如:下

Do not just be a pragrammer 519

[TwistedFate]XML JSON数据结构解析

XML数据解析SAX解析simple API for XML解析xml数据- (void)xmlParserUpData{ // 利用的是系统的NSXMLParser // xml分析类 // 以驱动事件进行xml的解析(利用触发得的代理方法解析) // 特点: 逐行解析// 获取路径 NSString *path = [[NSBundle mainBundle] pathFor

Do not just be a pragrammer 495

[TwistedFate]数据库初级使用

SQLite数据库使用步骤: 1. 引入libsqlite3.0框架 2. 在数据库操作类里 引入创建单例类实现数据库的管理使用// 单例的初始化方法 + (SQLiteManager *)shareManager;// 插入数据 - (void)insertTableWithStudent:(Student *)stu;// 删除数据 - (void)deleteWithAge:(NSI

Do not just be a pragrammer 490

[TwistedFate]UITableViewCell自定义-01

自定义cell步骤: 创建TableViewCell的子类 重写初始化方法 要添加的控件添加到到cell的现实内容区域contentView上面 把系统的cell 替换成自定义cell 完成 创建MyTableViewCell类// 自定义初始化 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(

Do not just be a pragrammer 487
上一篇: [TwistedFate]多线程编程NSThread
下一篇: [TwistedFate]UIWebView的简单使用
zZZ浮生
博客等级 码龄11年 12粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值