RAC---RACScheduler(1)

RCTargetQueueScheduler解析
本文解析了RCTargetQueueScheduler的实现细节,展示了如何通过dispatch_set_target_queue方法将不同类型的队列转换为串行队列,确保调度器的稳定运行。

私有方法

1.有个文件:RACScheduler+Private.h,让我想起很多第三方库会出现xxx+Private.h的头文件,不是很明白。其实它是把xxx.m里的某些方法的定义写在了xxx+Private.h里了,提示你它是私有的。

RACTargetQueueScheduler

@implementation RACTargetQueueScheduler

#pragma mark Lifecycle

- (id)initWithName:(NSString *)name targetQueue:(dispatch_queue_t)targetQueue {
	NSCParameterAssert(targetQueue != NULL);

	if (name == nil) {
		name = [NSString stringWithFormat:@"com.ReactiveCocoa.RACTargetQueueScheduler(%s)", dispatch_queue_get_label(targetQueue)];
	}

	dispatch_queue_t queue = dispatch_queue_create(name.UTF8String, DISPATCH_QUEUE_SERIAL);
	if (queue == NULL) return nil;

	dispatch_set_target_queue(queue, targetQueue);

	return [super initWithName:name queue:queue];
}
dispatch_set_target_queue最为特殊,它把其它队列无论是串并行队列都压进了一个串行队列,保证scheuler的稳定性。还可以把自己的优先级改变成目标队列的优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值