NSThread适合简单的耗时任务的执行,它有两种执行方法
- (void)oneClick{ [NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:@"oneClick"]; } -(void)doSomething:(NSString*) str{ NSLog(@"%@",str); } - (void)twoClick{ NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:) object:@"twoClick"]; [myThread start]; }
NSOperation适合需要复杂的线程调度的方法,然后它默认是使用主线程不会创建子线程
- (void)threeClick{ // 1.创建NSInvocationOperation对象 NSInvocationOperation *op = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run) object:nil]; // 2.调用start方法开始执行操作 [op start]; } - (void)run { NSLog(@"------%@", [NSThread currentThread]); } - (void)fourClick{ NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{ // 在主线程 NSLog(@"1------%@", [NSThread currentThread]); }]; // 添加额外的任务(在子线程执行) [op addExecutionBlock:^{ NSLog(@"2------%@", [NSThread currentThread]); }]; [op addExecutionBlock:^{ NSLog(@"3------%@", [NSThread currentThread]); }]; [op addExecutionBlock:^{ NSLog(@"4------%@", [NSThread currentThread]); }]; [op start]; }
以上这篇iOS NSThread和NSOperation的基本使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Objective-C的NSOperation多线程类基本使用指南,包括了Objective-C的NSOperation多线程类基本使用指南的使用技巧和注意事项,需要的朋友参考一下 NSOperation 一、NSOperation 1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作。 NSOperation本身是抽
本文向大家介绍iOS多线程应用开发中使用NSOperation类的基本方法,包括了iOS多线程应用开发中使用NSOperation类的基本方法的使用技巧和注意事项,需要的朋友参考一下 一、NSOperation简介 1.简单说明 NSOperation的作⽤:配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue
本文向大家介绍详解vue-router基本使用,包括了详解vue-router基本使用的使用技巧和注意事项,需要的朋友参考一下 路由,其实就是指向的意思,当我点击页面上的home 按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Home按钮 => home 内容, about按钮 => about 内容,也可以说是一种映射。 所以在页面
本文向大家介绍Android OkHttp基本使用详解,包括了Android OkHttp基本使用详解的使用技巧和注意事项,需要的朋友参考一下 Android系统提供了两种HTTP通信类,HttpURLConnection和HttpClient。 尽管Google在大部分安卓版本中推荐使用HttpURLConnection,但是这个类相比HttpClient实在是太难用,太弱爆了。 OkHttp是
本文向大家介绍详解git的基本使用方法,包括了详解git的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 什么是git? git是目前世界上最先进的分布式版本控制系统。 git与SVN的最主要区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中
本文向大家介绍Vagrant基本命令使用详解,包括了Vagrant基本命令使用详解的使用技巧和注意事项,需要的朋友参考一下 Vagrant基本命令详解,具体如下: 1、检查当前的版本 2、列出所有的box 3、添加一个box 1)box名简写 Vagrant可以从这里https://atlas.hashicorp.com/boxes/search 下载各种Vagrant映像文件。 2)通过指定的U
本文向大家介绍Require.js的基本用法详解,包括了Require.js的基本用法详解的使用技巧和注意事项,需要的朋友参考一下 一:什么是require.js ①:require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染和其后的脚本的执行,并提供了在加载完成之后的执行相应回调函数的功能;
问题内容: 今天,当我试图“通用化”我的“ CoreData导入操作”时遇到了一个奇怪的问题。看来,如果我创建NSOperation的通用子类,则不会调用该func。 简单的例子: 如果您创建此类的实例并将其添加到中,您将看到实际上并没有调用它。 操作简单地从过境到和状态,而无需调用。 如果我从类中删除通用注释,它将正常工作。 这怎么可能?我在这里想念什么吗? 问题答案: 问题是由以下简单规则引起