GCD源码分析
背景
最近在浏览React Native代码的时候发现有提到Main Queue和Main Thread的区别,很早就有阅读GCD源码的冲动,这回总算找到机会了。
阅读源码之前先给个结论:Main Thread 和 Main Queue是两个不同的东西。
- Main Queue IS bound to Main Thread.
- Main Thread IS NOT bound to Main Queue.
源码剖析
关键点
queue和线程的关系
JUST REMEMBER THIS PNG!!
slowpath vs fastpath
可能大家对__builtin_expect比较熟悉,这是编译器可以用来优化执行速度的函数。
程序员在写if条件的时候,可能知道比较的值更可能是哪种情况,因此就可以使用fastpath
或者slowpath来告诉编译器,让编
