2020-07-06 面试总结

浪费了这次机会,也许是好事
1.gcd qos的影响
答的 实际没啥影响,实际确实基本用的 默认 参数,其实自己定义多种优先级有一些影响

2.osspinLock不安全的原因
优先级翻转问题:


image.png

当低优先级线程获得锁的时候,中优先级去获取了运行权,再有高优先级线程获取运行权,等待之前的自旋锁释放,但低优先级线程没有机会释放锁。
看起来就像是中优先级的线程更优先。这叫优先级反转。

解决方法:
1.优先级天花板:也就是获取共享资源(上锁)时,提升当前线程到最高优先级
2.优先级继承:在获取共享资源(上锁)时,比较占用共享资源的线程优先级,临时提高优先级


image.png

3.如何避免线程爆炸
之前没接触,查到文章是使用dispath_apply做多个线程的处理,之前用户这个函数做实验查数速度。但是实际项目当中还是要再深入思考这个问题。面试官推荐我看 wwdc session了解下。
有个库之后可以试下:KKThreadMonitor

4.算法 输入升序降序数组 输出 升序数组
怪异的问题,不知为啥这么出,正常暴力算法就可以。 优化方案当时没想出,用栈可以在弹出上做手段优化到O(n)

你可能感兴趣的:(2020-07-06 面试总结)