-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//創建隊列
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
//設置最大并發操作數(線程用完了還可以拿來用)
queue.maxConcurrentOperationCount = 3;//數量為1的時候是串行隊列,大于1的時候是并發隊列
//NSBlockOperation *op1 = [NSBlockOperation blockOperationWithBlock:^{
//NSLog(@"download1====%@",[NSThread currentThread]);
//}];
//添加操作到隊列中
//[queue addOperation:op1];
[queue addOperationWithBlock:^{
NSLog(@"download1====%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:0.01];
}];
[queue addOperationWithBlock:^
NSLog(@"download2====%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:0.01];
}];
[queue addOperationWithBlock:^{
NSLog(@"download3====%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:0.01];
}];
[queue addOperationWithBlock:^{
NSLog(@"download4====%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:0.01];
}];
[queue addOperationWithBlock:^{
NSLog(@"download5====%@",[NSThread currentThread]);
[NSThread sleepForTimeInterval:0.01];
}];
}
-(void)operationQueue1{
//創建隊列
NSOperationQueue *queue = [[NSOperationQueue alloc]init];
//創建操作(任務) NSInvocationOperation
NSInvocationOperation *op1 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download1) object: nil];
NSInvocationOperation *op2 = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download2) object:nil];
//NSBlockOperation
NSBlockOperation *op3 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"download3====%@",[NSThread currentThread]);
}];
[op3 addExecutionBlock:^{
NSLog(@"download4---------%@",[NSThread currentThread);
}];
[op3 addExecutionBlock:^{
NSLog(@"download5-------%@",[NSThread currentThread]);
}];
NSBlockOperation *op4 = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"download6===========%@",[NSThread currentThread]);
}];
//創建XMGOperation 創建一個類名叫XMGOperation繼承于NSOperation
XMGOperation *op5 = [[XMGOperation alloc]init];
//將任務添加懂啊隊列中
[queue addOperation:op1];//[op1 start];
[queue addOperation:op2];//[op2 start];
[queue addOperation:op3];//[op3 start];
[queue addOperation:op4];//[op4 start];
[queue addOperation:op5];//[op5 start];
}
-(void)download1{
NSLog(@"download1--------%@",[NSThread currentThread]);
}
-(void)download2{
NSLog(@"download2-------%@",[NSThread currentThread]);
}
//XMGOperation類
#import"XMGOperation.h"
@implementation XMGOperation
/**
需要執行的任務
**/
//當異步操作重復調用main里面的代碼
-(void)main{
NSLog(@“XMGOperation ----下載圖片-------%@”,[NSThread currentThread]);
}