iOS进阶之面试题iOS

《Objective-C高级编程 iOS与OS X多线程与内存管

2019-01-16  本文已影响47人  我才是臭吉吉

GCD篇:1.GCD的使用要点

1.多线程

一个CPU执行的CPU命令列为一条无分叉路径,即为线程。而这种无分叉路径存在多条,即为多线程

2.GCD的API要点

2.1 串行和并发队列的使用建议
2.2 GCD的内存管理
2.3 队列的优先级
2.4 dispatch_after

任务的延迟执行,是指在指定时间后或到达指定时间,将block对象派发到任务队列中。注意是“派发”而不是“执行”,故可能存在一定时间延迟,且根据执行线程的任务拥挤程度,执行时间也不确定(派发的任务是由NSRunLoop对象在一次运行循环中取出并执行)。

2.5 提高数据库或文件的读写效率

通过COncurrent Dispatch Queuedispatch_barrier_async函数组合使用,异步读取,栅栏操作写入,既可以保证读取的高效,还能保证写入的有效性和安全性。

2.6 确保安全地使用dispatch_sync

对于个人目前的认知来说,只有在保证真正实现“原子性”的property时,才有可能会使用这个东西。

2.7 Dispatch Semaphore可以保证更细颗粒度的排他操作
2.8 dispatch_once
上一篇 下一篇

猜你喜欢

热点阅读