子线程(NSThread)的注意点

2020-02-04  本文已影响0人  健了个平_24
子线程的主任务一旦执行完毕,生命周期就结束了,即使是被强指针引用着,也无法再使用,跟僵尸差不多了。
self.thread = [[NSThread alloc] initWithBlock:^{
    // 主任务。
}]; 
   
[self.thread start];
// 子线程先执行主任务,执行完就会退出,虽然self.thread这个对象没死,但已经废了,不会再执行其他任务。

// 子线程都废了,再执行下面这句代码已经无效了
// 注意:waitUntilDone为YES就会崩溃,因为目标线程已经退出,根本不可能等到任务执行完
[self performSelector:@selector(test) onThread:self.thread withObject:nil waitUntilDone:NO]; 
上一篇 下一篇

猜你喜欢

热点阅读