《Objective-C高级编程》学习笔记。GCD。
GCD全称 Grand Central Dispatch。GCD是异步执行任务的技术之一。
多线程编程
多线程更新相同的资源会导致数据不一致,会造成死锁,使用太多线程会消耗大量内存。
使用线程,不妨碍主循环的执行。
Dispatch Queue
Serial Dispatch Queue: 使用一个线程串行执行。
Concurrent Dispatch Queue:使用多个线程并行执行,取决于当前系统的状态。
Main Dispatch Queue: 主线程。
Global Dispatch Queue:一种系统提供的Concurrent Dispatch Queue,包含4各执行优先级。
dispatch_set_traget_queue 变更执行优先级。
dispatch_after 可以作为粗略的闹钟功能使用。
dispatch_group。
dispatch_barrier_async:配合Concurrent Dispatch Queue一起使用可实现高效的数据库访问和文件访问。
dispatch_sync: 容易引起死锁。
dispatch_apply:该函数按指定的次数将指定的Block追加到指定的queue中,并等待全部处理执行结束。
dispatch_semaphore:可进行更细粒度的排他控制。
dispatch_once: 只执行一次,在多线程下也能保证安全。
Dispatch I/O: 可提高文件的读取速度。
上面是GCD的一些常用API,使用这些api可以方便的实现多线程。