美文网首页程序员
OC面试之--多线程

OC面试之--多线程

作者: 洧中苇_4187 | 来源:发表于2020-04-16 10:30 被阅读0次

    <一>

    主队列是特殊的串行队列;

    异步并行,异步串行,这两个具备开启新线程的能力,除此之外,都不具备开启新线程的能力

    如图

    通过几个例子加深理解:执行以下程序会不会出现死锁

    串行队列中执行同步任务必然死锁 串行队列中执行异步任务不会死锁,因为异步任务不需要立即执行 异步函数中添加一个同步任务会造成死锁 任务3虽然是同步任务,但他是在新的线程中执行的,所以它不会阻塞线程 任务3虽然是同步任务,但他属于异步队列,不会卡主当前线程

    总而言之一句话:sync(同步函数)中往串行队列中添加任务,会造成线程阻塞(死锁).


    <二>

    思考:下面test方法会不会执行

    test方法不会执行,因为当前thread执行完任务之后就死了,考察的点是--子线程会不会默认创建runloop,答案是不会

    修改如下

    在里面创建一个runloop,注意:上图传入的模式必须是DefaultMode,NSRunLoopCommonModes不起作用,原因未知

    相关文章

      网友评论

        本文标题:OC面试之--多线程

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