关于GCD这块知识,看过了apple的开发文档,在工作中自己也踩过了不少坑,总结起来就是:
1、耗时的操作新开线程,异步执行完成之后再回到主线程更新UI;
2、对于一些需要考虑线程安全问题的地方,最好是单写多读,写的时候,不允许读,避免读写同时发生。
3、同步异步的使用;
4、对于一些网络请求,需要等待多个网络请求成功之后再执行总操作,网络请求是异步的: +
dispatch_group_enter(downloadGroup);+ dispatch_group_leave(downloadGroup); + dispatch_group_notify...完美解决。
参考资料,建议:
http://www.objcio.cn/ 这个写的非常详细,精读这篇就够了;
https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch-in-depth-part-1.md
https://github.com/nixzhu/dev-blog/blob/master/2014-05-14-grand-central-dispatch-in-depth-part-2.md 当然,如果觉得没有更实用的例子,可以参考这2篇博客;