美文网首页面试
OC_多线程实现的几种方式

OC_多线程实现的几种方式

作者: figure_ai | 来源:发表于2016-11-23 15:00 被阅读38次

1、 NSThread
2、Cocoa NSOperation (使用NSOperation和NSOperationQueue)
3、GCD(Grand Central Dispatch)


1、NSThread

优点:NSThread比其他两个轻量级;
缺点:需要自己管理线程的生命周期,线程同步,线程同步时对数据的加锁会有一定的系统开销。

NSThread生成线程的两种方式:

//第一种:- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument 
NSThread* thread = [NSThread alloc] initWithTarget:self selector:@selector(do:) object:nil];
[thread start];

//第二种:+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
[NSThread detachNewThreadSelector:@selector(do:) toTarget:self withObject:nil];

cocoa中的一些函数也会单独开辟一个线程执行我们的操作如:

//- (id)performSelector:(SEL)aSelector;

//- (id)performSelector:(SEL)aSelector withObject:(id)object;

//-(void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)
delay inModes:(NSArray *)modes;

//- (void)performSelectorBackground:(SEL)aSelector withObject:(id)argNS_AVAILABLE(10_5,2_0);

2、Cocoa Operation

优点:不需要关心线程管理,数据同步的事情;
注:Cocoa Operation相关的类是NSOperation、NSOperationQueue。NSOperation是个抽象类,使用时必须用它的子类,可以实现它或者定义好两个子类:NSInvocationOperation和NSBlocOperation。创建NSOperation子类的对象,把对象添加到NSOperationQueue队列里执行,我们会把我们执行操作放在NSOperation中main函数中。

3、GCD

Grand Central Dispatch(GCD)是Apple开发的一个多核编程的解决方法,GCD是一个代替诸如NSThread、NSOperationQueue、NSInvocationOperation等技术的高效强大的技术,它让队列平行排队的执行特定任务,根据可用的处理资源,安排他们在任何可用的处理器核心上执行任务,一个任务可以是一个函数或者是一个block、

相关文章

  • OC_多线程实现的几种方式

    参考链接IOS多线程实现方式 实现程序多线程执行的三种方式: 1、 NSThread2、Cocoa NSOpera...

  • 多线程(最全面试题04)

    Java实现线程有哪几种方式?1、继承Thread类实现多线程2、实现Runnable接口方式实现多线程3、使用E...

  • 创建线程的方式

    1创建线程的几种方式a.继承Thread类实现多线程b.实现Runnable接口方式实现多线程c.使用Execut...

  • Q&A-04 多线程&分布式

    1、Java实现多线程有哪几种方式 Java 多线程实现方式主要有四种: 继承Thread类 实现Runnable...

  • 2021-01-26

    实现多线程的方式到底有几种?1.如何创建多线程方式一:继承Thread类方式二:实现Runnable接口继承Thr...

  • 多线程经典面试题及答案

    java实现线程有哪几种方式 1.继承Thread类实现多线程2.实现Runnable接口方式实现多线程3.使用线...

  • 多线程的热点问题

    1.多线程有几种实现方式 1.继承Thread实现多线程 2.通过Runnable实现多线程 3.使用Callab...

  • FutureTask实现原理

    在 多线程实现方式 文中讲述了几种开启多线程的方式,每种方式都有其特定的使用场景,本文将剖析带有返回值的线程实现方...

  • iOS面试题总结整理(附答案-持续更新)

    iOS面试题总结整理(附答案) 多线程的实现方式;iOS中实现多线程的方案有4种 延迟执行的几种方式;延迟1秒执行...

  • iOS 模块分解—「Thread 多线程」

    引导 谈到多线程,想必大家第一反应就是多线程常用的几种实现方式。其中 NSThread、GCD、NSOperati...

网友评论

    本文标题:OC_多线程实现的几种方式

    本文链接:https://www.haomeiwen.com/subject/rdhvpttx.html