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来进行处理就好了。

可参考的线程保活
可参考的线程保活

上一篇下一篇

猜你喜欢

热点阅读