nsoperation 是一種多執行緒技術 ,起基本原理是把相應地操作放在佇列裡邊 ,然後有佇列分發處理。
佇列的建立
/**
* 初始化乙個佇列
* * @return 初始化好的對列
*/- (nsoperationqueue *)myqueue
return _myqueue;
}
向佇列中新增操作
#pragma mark - 同時併發執行緒數量
/** * 在佇列中新增操作
*/- (void)opdemo1
]; }
}
佇列可以暫停和繼續
- (ibaction)pause
// 掛起-》暫停,暫停的是佇列,讓佇列暫時不再派發任務
nslog(@"暫停");
[self.myqueue setsuspended:yes];
}- (ibaction)resumue
nslog(@"繼續");
[self.myqueue setsuspended:no];
}
佇列裡邊的操作預設是非同步的
但是可以新增依賴關係 ,從而實現順序執行的需求
/**
* nsinvocationoperation 測試樣例
*/- (void)opdemo4
- (void)demo4test1
- (void)demo4test2
- (void)demo4test3
- (void)demo4test4
#pragma mark - 操作的依賴->操作的執行順序
/** * nsblockoperation 測試陽曆
*/- (void)opdemo3
]; nsblockoperation *op2 = [nsblockoperation blockoperationwithblock:^];
nsblockoperation *op3 = [nsblockoperation blockoperationwithblock:^];
nsblockoperation *op4 = [nsblockoperation blockoperationwithblock:^];
// dependency依賴
[op2 adddependency:op1];
[op3 adddependency:op2];
[op4 adddependency:op3];
// 一定注意不要出現迴圈依賴,
// [op1 adddependency:op4];
// waituntilfinished等待所有操作完成再繼續
// [self performselectoronmainthread:<#(sel)#> withobject:<#(id)#> waituntildone:<#(bool)#>]
[self.myqueue addoperations:@[op1, op2, op3] waituntilfinished:no];
[[nsoperationqueue mainqueue] addoperation:op4];
}
NSOperation的簡單使用
1.預設情況下,nsoperation並不具備封裝操作的能力,必須使用它的子類,使用nsoperation子類的方式有3種 1 nsinvocationoperation 2 nsblockoperation 3 自定義子類繼承nsoperation,實現內部相應的方法 這講先介紹如何用nsoper...
NSOperation的基本使用
viewcontroller.m nsoperation的基本使用 nsoperation的作用 配合使用nsopertaion和nsoperationqueue也能實現多執行緒程式設計 nsopertaion和nsoperationqueue實現多執行緒的具體步驟 先將需要執行的操作封裝到乙個ns...
NSOperation 操作 簡介
nsoperation 使用1.簡介 重點 理解操作 nsoperation 和操作佇列 nsoperationqueue nsoperation 使用2.nsoperation 重點 1.nsblockoperation,nsinvocationoperation 的簡單使用.新增更多操作 op2...