【多线程-第二天-子线程的消息循环 Objective-C语言】

一、子线程的消息循环

通知

1.下面我们来看:子线程的消息循环

一句话:主线程的消息循环默认开启,子线程的消息循环默认不开启,

那既然不开启,我们想要用,就要自己来,开启,

那怎么来开启呢,我们下面有一句话,[NSRunLoop currentRunLoop],获取当前的消息循环,调用run方法,run就是,开始执行,

[[NSRunLoop currentRunLoop] run];

注意:跟据你刚刚学过的,这里边有一个问题,什么问题呢,刚才我们说过,消息循环,是不是运行在一种模式上,这个模式指定了没有,没有,没有的话,它也是有模式的,什么模式,NSDefaultRunLoopMode,默认模式,

下面,我们来演示一下,子线程的消息循环,怎么来开启,

我们来新建一个项目:

通知

Name:02-子线程消息循环

通知

我们要开启子线程的消息循环,首先,我得创建一个子线程,我们要复习一下,之前怎么开启线程的,

通知

// 开启一个子线程

NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(demo) object:nil];

[thread start];

// 执行在子线程上的方法

- (void)demo{

NSLog(@“I’m running.”);

}

这个没有什么问题,下面,我们要来演示一个新的内容,我们要往子线程的消息循环中,添加一个输入源、我们也可以用定时源、我们的定时器、也可以执行在子线程的消息循环上,

我们还可以设置另一种源啊,我们之前见过的,

// 往子线程的消息循环中添加输入源

通知

怎么添加,刚刚我们在那张图上见过,见过一个performSelector,performSelector,也可以设置消息循环的输入源,调用performSelector,

通知

注意:我们想让这个selector,执行在子线程上,我们应该找一个selector,因为这里边有好多好多performSelector,看第一个,这儿有一个什么,onThread吧,

performSelector:(SEL) onThread:(NSThread *) withObject:(id) waitUntilDone:(BOOL)

通知

performSelector:onThread:是不是在一个指定的线程上来执行,下面,有两个方法,这两个方法有什么区别呢,

通知

1)performSelector:(SEL) onThread:(NSThread *) withObject:(id) waitUntilDone:(BOOL)

我们来先看第一种方法啊,传入方法,指定线程,传入参数,waitUntilDone:(BOOL)这个是什么,是否等着这个方法执行完,再执行后续的操作,这是一种方式,

我们要指定一个输入源,少点儿东西呢,我们想让这个方法执行在消息循环中,我们要设置一个输入源,要设置输入源的话,必须要设置什么,模式,消息循环的模式,这个方法,没有设置模式,没有是什么模式,NSDefaultRunLoopMode,默认模式吧,

看一下右边的帮助:

通知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值