Skip to content

Latest commit

 

History

History
6 lines (3 loc) · 493 Bytes

GCD 在 Runloop 中的使用.md

File metadata and controls

6 lines (3 loc) · 493 Bytes

GCD 在 Runloop 中的使用

GCD由子线程返回到主线程,只有在这种情况下才会触发 RunLoop

当调用了dispatch_async(dispatch_get_main_queue(), <#^(void)block#>)libDispatch会向主线程RunLoop发送消息唤醒RunLoopRunLoop从消息中获取block,并且在__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__回调里执行这个block。不过这个操作仅限于主线程,其他线程dispatch操作是全部由libDispatch驱动的。