iOS多线程总结

1.GCD
特点:易用,易读,直观,灵活,高性能
gcd其实没有线程的概念,其实gcd的多线程是由于多任务概念带来的效果
//创建子线程执行dispatch_async(dispatch_get_global_queue(0, 0), ^{ //... });//在主线程执行dispatch_async(dispatch_get_main_queue(), ^{ //... });

2.NSThead

特点:基础,易维护

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

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

3.NSOperation

特点:系能高,安全可靠,功能强大,控制性强,线程池实现

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

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

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

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

4.performSelectorInBackground

特点:易用,清洁,同NSThead

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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 进程 什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内...
    45b645c5912e阅读 555评论 0赞 5
  • 1.一些概念 2.GCD ·并行队列 2.2创建队列1)主队列用来刷新UI,注意耗时操作不要放到主线程执行 2)自...
    其实你懂De阅读 297评论 0赞 0
  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    张战威ican阅读 735评论 0赞 0
  • RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。 消息...
    彩虹之梦阅读 1,189评论 2赞 1
  • 【七月未央】20170925学习力6期践行D133 今天是学习力最后一堂课,各种舍不得和伤感。虽然课已经结束,但是...
    七妈_haiyan阅读 685评论 0赞 51

友情链接更多精彩内容