runloop线程保活场景
2021-08-25 本文已影响0人
helinyu
NSThread 创建线程和销毁
1)在当前的线程执行代码里面启动runloop ,事实给当前的线程添加了runloop。
2)在当前的线程里面,stop掉runloop,表示用当前的线程停止runloop。 【上面的方法并不会就停止了线程】
停止不了的原因:
因为runloop里面是一个循环:
while (1) {
[[NSRunLoop currentRunLoop] runMode:<#(nonnull NSRunLoopMode)#> beforeDate:<#(nonnull NSDate *)#>];
}
//不管的执行runloop before的方法
// 我们只是停止了其中的一次runloop。 runloop里面还是会不断的执行。
增加变量来判断是否运行runloop
拓展: 如果用GCD,如何实现线程包括,其实和这个差不都,在执行代码块中加入runloop, 然后就是获取NSThread,同样转化为NSThread来进行处理就好了。