iOS多線程總結(jié)

1.GCD
特點:易用,易讀,直觀,靈活,高性能
gcd其實沒有線程的概念,其實gcd的多線程是由于多任務(wù)概念帶來的效果
//創(chuàng)建子線程執(zhí)行dispatch_async(dispatch_get_global_queue(0, 0), ^{ //... });//在主線程執(zhí)行dispatch_async(dispatch_get_main_queue(), ^{ //... });

2.NSThead

特點:基礎(chǔ),易維護

NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(threadInMainMethod:) object:nil];
[myThread start];

[NSThread detachNewThreadSelector:@selector(threadInMainMethod:) toTarget:self withObject:nil];

3.NSOperation

特點:系能高,安全可靠,功能強大,控制性強,線程池實現(xiàn)

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^(){
NSLog(@"執(zhí)行第1次操作,線程:%@", [NSThread currentThread]);
}];

NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^(){
NSLog(@"執(zhí)行第2次操作,線程:%@", [NSThread currentThread]);
}];
// operation1依賴于operation2
[operation1 addDependency:operation2];

[queue addOperation:operation1];
[queue addOperation:operation2];

4.performSelectorInBackground

特點:易用,清潔,同NSThead

[self performSelectorInBackground:@selector(run) withObject:nil];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 進程 什么是進程 進程是指在系統(tǒng)中正在運行的一個應(yīng)用程序 每個進程之間是獨立的,每個進程均運行在其專用且受保護的內(nèi)...
    45b645c5912e閱讀 511評論 0 5
  • 1.一些概念 2.GCD ·并行隊列 2.2創(chuàng)建隊列1)主隊列用來刷新UI,注意耗時操作不要放到主線程執(zhí)行 2)自...
    其實你懂De閱讀 267評論 0 0
  • 在這篇文章中,我將為你整理一下 iOS 開發(fā)中幾種多線程方案,以及其使用方法和注意事項。當(dāng)然也會給出幾種多線程的案...
    張戰(zhàn)威ican閱讀 692評論 0 0
  • RabbitMQ 即一個消息隊列,主要是用來實現(xiàn)應(yīng)用程序的異步和解耦,同時也能起到消息緩沖,消息分發(fā)的作用。 消息...
    彩虹之夢閱讀 1,155評論 2 1
  • 【七月未央】20170925學(xué)習(xí)力6期踐行D133 今天是學(xué)習(xí)力最后一堂課,各種舍不得和傷感。雖然課已經(jīng)結(jié)束,但是...
    七媽_haiyan閱讀 649評論 0 51

友情鏈接更多精彩內(nèi)容