Concurrent Programming in macOS和iOS并发编程指南

苹果开发者的并行编程入门书,《Concurrent Programming in Mac OS X and iOS》真的蛮值得一读的。讲得不光是技术细节,还有不少实际应用场景,尤其是关于BlockGCD的部分,比较实用,代码清晰,读起来也不累。

块对象是 C 语言的一个小升级,写法也不复杂,用个^开头就能创建一个代码块。你可以像函数一样调用它,也能当参数传来传去,灵活得。写个^{ NSLog(@"Hello"); },立马执行也没问题。

作用域要注意一下,块里定义的变量只在块里有效,外部变量可以访问,但要改值的话就得下。尤其在多线程时,变量被复制到堆里,避免冲突。

GCD就更强了,是苹果搞的一套并发调度方案。直接用dispatch_async把任务扔进去,不用自己开线程。主线程队列用dispatch_get_main_queue()拿,更新 UI 的活儿别跑错地方了。

平时一些后台计算的东西,比如图片、网络求,扔全局并发队列:dispatch_get_global_queue(),性能还不错,主线程也不会卡。

总体来说,这本书挺适合入门也适合进阶。内容系统,代码清楚,还带不少苹果平台实际项目里的经验。写 iOS 或者 Mac app 的朋友,想提升响应速度、做好多核优化的话,建议翻翻看。

哦对了,想多了解的话,可以看看这个异步多任务的 demo或者这篇讲内部机制的文章,对理解 GCD 底层也有。

pdf 文件大小:4.01MB