用途:本资料面向 Objective-C 并发编程,讲解 Blocks(闭包)与 Grand Central Dispatch(GCD)两项基础技术。Blocks 用于匿名函数、回调与异步 API 设计;GCD 以调度队列替代直接管理线程,把工作分配到可用的 CPU 核心。
主要能力:涵盖块语法与语义、变量捕获行为、typedef 块类型、块作为方法参数与集合元素;__block 可变捕获、__weak/__strong 弱强引用避免循环引用;主队列、全局并发队列、自定义串行/并发队列,以及 dispatch_async、dispatch_sync、dispatch_after、dispatch_once、QoS 队列;调度组(dispatch_group_async、dispatch_group_enter/leave、dispatch_group_notify、dispatch_group_wait);屏障(dispatch_barrier_async/sync)实现读写模式,信号量限制并发,dispatch_apply 并行循环;以及 NSURLSession、UIView 动画等基于块的 Cocoa API。
使用方式:以代码模式展示,例如声明块 void (^simpleBlock)(void) = ^{ ... };、创建队列 dispatch_queue_create("com.example.serial", DISPATCH_QUEUE_SERIAL)、延迟执行 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ ... });、单例 dispatch_once。UI 更新应回到主队列。
适用场景:iOS/macOS 的异步回调、后台任务、并发数据加载与线程安全缓存等。
限制:资料为教学示例,未提供收费、平台版本要求或性能数据;存储到属性或集合的块需 copy 以从栈移至堆;避免使用 dispatch_sync 造成死锁。其余事实暂未提供。