GCD源码分析

  1. 云栖社区>
  2. 博客>
  3. 正文

GCD源码分析

rookienerd 2016-10-09 18:57:16 浏览5985
展开阅读全文

背景

最近在浏览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和线程的关系

gcd的线程池
JUST REMEMBER THIS PNG!!

slowpath vs fastpath

可能大家对__builtin_expect比较熟悉,这是编译器可以用来优化执行速度的函数。
程序员在写if条件的时候,可能知道比较的值更可能是哪种情况,因此就可以使用fastpath
或者slowpath来告诉编译器,让编

网友评论

登录后评论
0/500
评论
rookienerd
+ 关注