你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 創建多線程的三種方法

iOS 創建多線程的三種方法

編輯:IOS開發綜合
(1)//通過NSObject的方法創建線程
    //(這個方法會自動開辟一個後台線程,參數1:在這個後台線程中執行的方法,參數2:用於傳遞參數)
    [self performSelectorInBackground:@selector(banZhuanPlus) withObject:nil];

(2)//通過NSThread創建線程(參數1:方法的執行者;參數2:在線程中執行的方法;參數3:用於傳遞參數)
//第一步:創建線程
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(banZhuanPlus) object:nil];
//第二步:執行
[thread start];

[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];

//隊列: 先進先出
//棧: 先進後出

//隊列中涉及到串行和並行
//串行: 一次只能執行一個任務
//並行: 一次可以執行多個任務
(整片復制的時候,注意沒有注釋的屬於一體)


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved