Cocoa并发编程与未来拓展技术全解析
1. 并发编程基础与GCD概述
在软件开发中,并发编程是提升性能和用户体验的关键技术。它能让应用在执行耗时任务时,避免界面卡顿,让用户可以同时进行其他操作。以往在Leopard和iPhone应用中,我们可以相对轻松地实现并发,不过苹果并未止步于此。从Snow Leopard系统开始,NSOperation和NSOperationQueue的大部分设计在操作系统底层重新实现,诞生了强大的Grand Central Dispatch(GCD)技术。
GCD的核心思想是将工作单元放入队列,系统会自动管理线程,让这些工作在后台执行。这种方式极大地简化了需要并发的开发场景。GCD把NSOperationQueue的核心概念,如工作单元、轻松的后台处理和自动线程管理,封装到一个C接口中,这意味着不仅Cocoa开发者,使用C和C++编写的底层命令行工具也能利用这些特性。而且,NSOperationQueue在Snow Leopard中也基于GCD进行了重写,同时苹果还将GCD实现开源,使其可以移植到其他类Unix操作系统。
下面是NSOperationQueue和GCD队列的主要区别对比:
| 特性 | NSOperationQueue | GCD队列 |
| ---- | ---- | ---- |
| 执行顺序 | 可处理任意复杂的依赖关系来确定执行顺序 | 严格的FIFO(先进先出),工作单元按入队顺序开始执行,但完成顺序不一定 |
| 线程管理 | Leopard和iPhone实现中,每个操作运行时启动新线程,完成后终止 | 每个队列有线程池,线程在应用生命周期内复用,GCD会根据机器架构维护合适的线程池
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



