~~~
#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