面试题:iOS线程保活

2021-10-29  本文已影响0人  常在士心

简介
大家好!我是Tony,一个热爱技术,希望运用技术改变生活的的追梦男孩。闲话不多说,今天聊聊iOS的线程保活。主要内容如下:

线程保活的运用
线程保活的方法
保活的线程如何回收
线程保活运用
在实际开发中经常会遇到一些耗时,且需要频繁处理的工作,这部分工作与UI无关,比如说大文件的下载,后台间隔一段时间进行数据的上报,APM中开启一个watch dog线程等。

线程保活的方法
我们都知道运用启动后,后开启一个主线程,这个线程一直监听这各种事件源,这个监听器就是RunLoop.对于RunLoop的原理分析,大家可以阅读我的另一篇文章,这里就不做具体的描述。

自定义线程
这个我创建了一个TYThread,内容如下:

import "TYThread.h"

@implementation TYThread

MJThread *thread = [[MJThread alloc] initWithTarget:self selector:@selector(run) object:nil];
[thread start];
//run方法

保活的线程如何回收
添加stop的执行方法如下:

//如果使用如下方式创建thread,self会引用thread,thread会引用self,会造成循环引用。
TYThread *thread = [[TYThread alloc] initWithTarget:self selector:@selector(run) object:nil];
//需要在quitRunLoop中,进行如下设置

作者:tonytong
链接:https://www.jianshu.com/p/adf8bdd62487
来源:简书

上一篇下一篇

猜你喜欢

热点阅读