(1)//通過NSObject的方法創建線程 //(這個方法會自動開辟一個後台線程,參數1:在這個後台線程中執行的方法,參數2:用於傳遞參數) [self performSelectorInBackground:@selector(banZhuanPlus) withObject:nil];
[thread release];
(3)//NSOperation就是一個操作單元,用來執行方法,是一個抽象類,必須子類化或者使用系統創建好的子類(NSInvocationOperation or NSBlockOperation)
// //NSOperation是最小的操作單元;只能夠執行一次;
// //NSInvocationOperation第一步:創建
NSInvocationOperation *invocation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(banZhuanPlus) object:nil];
// //第二步:(不設置的話不添加到隊列)在主線程中執行
// [invocation start];
//NSBlockOperation第一步:創建
NSBlockOperation *block = [NSBlockOperation blockOperationWithBlock:^{
[self banZhuanPlus];
}];
// //第二步:執行(在主線程中執行)
// [block start];//如果添加到隊列就不要start了
// 這個隊列會自動幫咱們創建一個輔助的線程
//這個隊列裡面只能夠添加NSOperation以及子類的對象;
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue setMaxConcurrentOperationCount:2];//設置最大並行數;
[queue addOperation:block];//只要把操作隊列添加到隊列中就會執行;
[queue addOperation:invocation];
//隊列: 先進先出
//棧: 先進後出
//隊列中涉及到串行和並行
//串行: 一次只能執行一個任務
//並行: 一次可以執行多個任務
(整片復制的時候,注意沒有注釋的屬於一體)