iOS中的多线程

  1. NSObject 的 performSelectorInBackground:withObject
    参数1:方法名称,参数2:方法参数
  2. - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
    可以理解为切回到主线程么?

NSThread

初始化方法

- (instancetype)initWithTarget:(id)target selector:(SEL)selector object:(id)argument

利用 初始化方法得到的实例需要调用- (void)start该进程才会开始工作
如果用便利构造器构造的话就构造完成就可以直接工作
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument

同时为了保证多线程访问一个数据时,这个数据不会同时被操作,引入了NSLock这个类
某些代码开始操作数据时可用[lock lock]来锁住代码,不让其他线程进行操作,当执行完成时进行[lock unlock]操作,这样下一个进程才会执行这段代码

iOS中有@ synchronized{}开简化NSLock,只需要把需要锁的代码放在这个括号中就会自动锁住和解锁

NSOperationQueue,NSOperation

NSOperationQueue 通过- (void)addOperation:(NSOperation *)operation方法来向队列中添加NSOperation

NSOperation是一个抽象类,需要NSInvocationOperation(或者其他的实现抽象类的类)创建一个NSOperation操作单元

NSBlockOperation是系统提供的一个通过block创建操作单元的方法
它的便利构造方法+ (instancetype)blockOperationWithBlock:(void (^)(void))block可以直接通过block中写要实现的代码

[NSOperationQueue mainQueue]获取到主线程队列
[NSOperationQueue currentQueue]获取当前线程队列

Grand Central Dispatch (GCD)

中文翻译:大中央调度^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值