iOS多线程编程之NSOperation

NSOperation有两种方法:

1>.NSInvocationOperation:创建一个operation,并用selecter指向执行的代码段

2>.NSBlockOperation:创建一个operation,并将执行的代码放在block块中.

1.NSInvocationOperation多线程方法:

创建方法:

- (void)invocationOperation {
	NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(run1) object:nil];
	NSOperationQueue *queue = [[NSOperationQueue alloc] init];
	[queue addOperation:operation1];
}
- (void)run1{
	NSLog(@"runing1---%@",[NSThread currentThread]);
}

2.NSBlockOperation多线程方法:

创建方法:

- (void)blockOperation1 {
	NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
		NSLog(@"blockOperation---%@",[NSThread currentThread]);
	}];
	operation.completionBlock = ^{
		NSLog(@"finish!-----");
	};
	NSOperationQueue *queue = [[NSOperationQueue alloc] init];
	[queue addOperation:operation];
}

3.从子线程回到主线程刷新UI方法:

performSelectorOnMainThread: withObject: waitUntilDone:

4.多个operation在queue中的执行顺序是可以设置的.

在添加到queue之前设定operation之间的依赖关系:

[operation2 addDependency:operation1];

operation2依赖于operation1=>2在1的后边执行.此时如果queue中只有2个operation的话不会多创建一个子线程的,进程中只有主线程和operation1的那个子线程.毕竟顺序执行多开一个子线程是浪费的嘛.

5.queue中可以设定同时最多的线程数量

queue.maxConcurrentOperationCount = 3;

--end

版权声明:本文为博主原创文章,转载请注明来源:http://blog.csdn.net/zhangwenhai001

时间: 2024-07-30 22:07:14

iOS多线程编程之NSOperation的相关文章

iOS多线程编程之NSOperation和NSOperationQueue的使用(转自容芳志专栏)

转自由http://blog.csdn.net/totogo2010/ 使用 NSOperation的方式有两种, 一种是用定义好的两个子类: NSInvocationOperation 和 NSBlockOperation. 另一种是继承NSOperation 如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似.和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NSOperation的一个方法main.相当与ja

iOS多线程编程之NSOperation和NSOperationQueue的使用

前一篇 <iOS多线程编程之NSThread的使用> 介绍三种多线程编程和NSThread的使用,这篇介绍NSOperation的使用. 使用 NSOperation的方式有两种, 一种是用定义好的两个子类: NSInvocationOperation 和 NSBlockOperation. 另一种是继承NSOperation 如果你也熟悉Java,NSOperation就和java.lang.Runnable接口很相似.和Java的Runnable一样,NSOperation也是设计用来扩展

iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术.以优化的应用程序支持多核心处理器和其它的对称多处理系统的系统.这建立在任务并行运行的线程池模式的基础上的.它首次公布在Mac OS X 10.6 ,iOS 4及以上也可用. 设计: GCD的工作原理是:让程序平行排队的特定任务.依据可用的处理资源,安排他们在不论什么可用的处理器核心上运行任务. 一个任务能够是一个函数(function)或者是一个block. GCD的底层依旧是用线程实现,只是这样能够让程序

iOS多线程编程之NSThread的使用

目录(?)[-] 简介 iOS有三种多线程编程的技术分别是 三种方式的有缺点介绍 NSThread的使用 NSThread 有两种直接创建方式 参数的意义 PS不显式创建线程的方法 下载图片的例子 新建singeView app 线程间通讯 线程同步 线程的顺序执行 其他同步 1.简介: 1.1 iOS有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用) 3.GCD 

【转载】iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

[转载]http://blog.csdn.net/totogo2010/article/details/8016129 iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用 分类: iOS开发进阶2012-09-25 16:22 35382人阅读 评论(32) 收藏 举报 目录(?)[+] 介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统.这建立在任务并行执行的线程

iOS 多线程编程之Grand Central Dispatch(GCD)

介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统.这建立在任务并行执行的线程池模式的基础上的.它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用. 设计: GCD的工作原理是:让程序平行排队的特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务. 一个任务可以是一个函数(function)或者是一个block. GCD的底层依然是用线程实现,不过这样可以让程序员不

IOS 多线程编程之 NSThread 的使用

1.简介: IOS 多线程编程之 NSThread 的使用 1.1 IOS 有三种多线程编程的技术,分别是: 1..NSThread 2.Cocoa NSOperation (IOS 多线程编程之 NSOperation 和 NSOperationQueue 的使用) 3.GCD 全称:Grand Central Dispatch( IOS 多线程编程之 Grand Central Dispatch(GCD)介绍和使用) 这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也

iOS多线程编程之GCD

1.GCD介绍 Grand Central Dispatch 简称(GCD)是Apple公司开发的技术,相比NSThread或NSOperation使用方便,并且优点是当处理器为多核时能利用多核的特征来创建线程.它首次发布在Mac OS X 10.6 ,iOS 4及以上也可用. 2.GCD分类 GCD中的FIFO队列称为dispatch queue,它可以保证先进来的任务先得到执行,dispatch queue分为下面3种:一种是串行队列(Serial Dispatch Queue),一种是并行

iOS多线程编程之GCD的使用

什么是线程呢? 1个CPU执行的CPU命令列为一条无分叉的路径即为线程. 这种无分叉路径不止1条,存在多条时即为多线程. 什么是GCD? Grand Central Dispatch (GCD)是异步执行任务的技术之一.一般将应用程序中计述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到Dispatch Queue中,GCD就能生成必要的线程并计划执行任务. dispatch_async(queue, ^{ /* *长时间处理 *例如访问数据库 */ /* *长时间处理结束