美文网首页
子线程(NSThread)的注意点

子线程(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)的注意点

    子线程的主任务一旦执行完毕,生命周期就结束了,即使是被强指针引用着,也无法再使用,跟僵尸差不多了。 除非启动子线程...

  • 多线程

    多线程 进程和线程 NSThread 通过类方法开启线程 通过NSObject的NSThread类别方法创建 注意...

  • iOS 多线程之NSThread和NSObject

    NSThread 通过NSThread手段来开辟线程的注意事项 当线程使我们手动开辟的时候需要我们自己来管理线程。...

  • NSThread用法

    NSThread是多线程的一种,有两种方法创建子线程(1)优点:NSThread 比GCD、NSOperation...

  • 7.2 多线程-NSThreed

    多线程-NSThreed.png NSThread案列 NSThread线程之间的通讯 NSThread线程的优先...

  • NSThread创建线程的方式

    NSThread通常来说, 有以下3种创建子线程的方式: 1.通过[[NSThread alloc] init]可...

  • IOS NSThread线程处理 子线程的启动与结束

    IOS NSThread线程处理 子线程的启动与结束 iOS多线程开发-多线程实现方式 -(void)blockO...

  • iOS GCD多线程

    iOS的三种多线程技术 NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程) 以下两点...

  • iOS多线程篇:NSThread

    iOS多线程篇:NSThread iOS多线程篇:NSThread

  • iOS多线程实现方案之 -- GCD

    昨天通过多线程实现方案之 -- NSThread说了关于 NSThread 多线程的一些知识点和用法, 其实之...

网友评论

      本文标题:子线程(NSThread)的注意点

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