子线程(NSThread)的注意点
作者:
健了个平_24 | 来源:发表于
2020-02-04 16:10 被阅读0次子线程的主任务一旦执行完毕,生命周期就结束了,即使是被强指针引用着,也无法再使用,跟僵尸差不多了。
self.thread = [[NSThread alloc] initWithBlock:^{
// 主任务。
}];
[self.thread start];
// 子线程先执行主任务,执行完就会退出,虽然self.thread这个对象没死,但已经废了,不会再执行其他任务。
// 子线程都废了,再执行下面这句代码已经无效了
// 注意:waitUntilDone为YES就会崩溃,因为目标线程已经退出,根本不可能等到任务执行完
[self performSelector:@selector(test) onThread:self.thread withObject:nil waitUntilDone:NO];
- 除非启动子线程的RunLoop,保持线程的活跃状态(子线程的RunLoop默认是没有启动的)。
本文标题:子线程(NSThread)的注意点
本文链接:https://www.haomeiwen.com/subject/pxnrxhtx.html
网友评论