~~~
#pragma mark - NSBlockOperation
- (void)test4{
NSOperationQueue * threadQueue = [[NSOperationQueue alloc] init];
// Block真心方便
[threadQueue addOperationWithBlock:^{
for (int i =0; i <100; i++) {
NSLog(@"--多线程--%d",i);
}
}];
for (int i =0; i <100; i++) {
NSLog(@"--主线程--%d",i);
}
[threadQueue release];
}
#pragma mark - NSInvocationOperation
- (void)test5{
//创建一个线程队列
NSOperationQueue * threadQueue = [[NSOperationQueue alloc]init];
//设置线程执行的并发数( -1 代表没有限制)
threadQueue.maxConcurrentOperationCount =1;
//创建一个线程操作对象
NSInvocationOperation * threadOperation = [[NSInvocationOperation alloc]initWithTarget:selfselector:@selector(mutableThread5)object:nil];
//设置线程操作对象的优先级
threadOperation.queuePriority =NSOperationQueuePriorityVeryHigh;
//可添加多个,还有一个添加数组对象的方法
[threadQueue addOperation:threadOperation];
for (int i =0; i <100; i++) {
NSLog(@"--主线程--%d",i);
}
[threadOperation release];
[threadQueue release];
}
- (void)mutableThread5{
for (int i =0; i <100; i++) {
NSLog(@"--多线程--%d",i);
}
}
@最后看看NSOperationQueue的其它常用方法:
- (void)addOperations:(NSArray *)ops waitUntilFinished:(BOOL)wait; //批量加入执行operation,wait标志是否当前线程等待所有operation结束后,才返回
- (void)addOperationWithBlock:(void (^)(void))block; //相当于加入一个NSBlockOperation执行任务
- (NSArray *)operations; //返回已加入执行operation的数组,当某个operation结束后会自动从这个数组清除
- (NSUInteger)operationCount //返回已加入执行operation的数目
- (void)setSuspended:(BOOL)b; //是否暂停将要执行的operation,但不会暂停已开始的operation
- (BOOL)isSuspended; //返回暂停标志
- (void)cancelAllOperations; //取消所有operation的执行,实质是调用各个operation的cancel方法
+ (id)currentQueue; //返回当前NSOperationQueue,如果当前线程不是在NSOperationQueue上运行则返回nil
+ (id)mainQueue; //返回主线程的NSOperationQueue,缺省总是有一个queue
~~~
- 前言
- 沙盒机制与文件(一)
- 沙盒机制和文件(二)
- 沙盒机制和文件(三)
- NSBundle介绍以及读取沙盒文件路径问题
- 数据持久化(一)-----归档 读写 文件路径
- 数据持久化(二)-----Sqlite
- 数据持久化(三)使用第三方类库FMDB
- 数据持久化(四)之NSUserDefaults
- 数据持久化(五)之CoreData
- 数据持久化(六)之Using CoreData with MagicalRecord
- 数据解析(一)解析XML之系统自带NSXMLParse类
- 数据解析(二)解析XML之GDataXMLNode
- 数据解析(三)解析JSON-----系统自带NSJSONSerialization 与 第三方JSONKit
- iOS多线程编程(一)NSThread
- iOS多线程编程(二)NSOperationQueue
- iOS多线程编程(三)Grand Central Dispatch(GCD)详解
- iOS网络编程(一)NSURLConnection
- iOS网络编程(二) 自定义请求网络类----推荐用于需要请求过程片段数据
- iOS网络编程(三) 异步加载及缓存图片---->SDWebImage
- iOS网络编程(四) 异步加载及缓存图片-----自定义类
- iOS网络编程(五) 异步加载及缓存图片-----EGO
- iOS网络编程(六) NSURLSession详解
- iOS网络编程(7) 第三方开源库----->AFNetworking