您好,登錄后才能下訂單哦!
隊(duì)列會(huì)幫我們創(chuàng)建一個(gè)輔助線程 . 里面只能添加NSOperation 以及子類的對(duì)象
NSOperation 是一個(gè)操作單元 ,用來執(zhí)行方法 , 是一個(gè)抽象類 , 必須子類化或者使用系統(tǒng)創(chuàng)建好的子類 (NSInvocationOperation 和 NSBlockOperation)
NSOperation 是最小的操作單元, 只能執(zhí)行一次
隊(duì)列 : 先進(jìn)先出
棧 : 先進(jìn)后出
隊(duì)列里涉及到 串行 和 并行
串行: 一次只能執(zhí)行一個(gè)任務(wù)
并行: 一次可以執(zhí)行多個(gè)任務(wù)
第一步 : 創(chuàng)建 InvocationOperation
NSInvocationOperation * invocation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(banZhuan) object:nil];
第二步 : 執(zhí)行 不添加到隊(duì)列中時(shí) .會(huì)在主線程中執(zhí)行
// [invocation start];
創(chuàng)建 BlockOperation
NSBlockOperation * block = [NSBlockOperation blockOperationWithBlock:^{
[self banZhuan];
}];
第二步: 執(zhí)行 不添加到隊(duì)列中時(shí) .會(huì)在主線程中執(zhí)行
// [block start];
NSOperationQueue * queue = [[NSOperationQueue alloc]init];
只要把操作單元添加到隊(duì)列中就會(huì)執(zhí)行
[queue addOperation:block];
最大并行數(shù) 設(shè)置 1 串行 大于 1 并行
[queue setMaxConcurrentOperationCount:1];
[queue addOperations:@[invocation , block] waitUntilFinished:NO];
[queue release];
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。