首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
GCD
订阅
faimin
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
GCD源码剖析
由一个问题想到的:现象是UI操作在主线程但不在主队列,仍不安全,这个问题需要深入gcd源码才能搞清楚真正原因
为什么runloop中先处理 blocks source0 休眠 再处理timer source1?
既然是一个循环,那么如果我们要做A,B, C三件事,如果A,B,C不是类似A会定义B的具体内容,B定义C的具体内容这样的关系,那么ABC在一个循环中的顺序就可以是随意的那么为什么一个runloop的真
iOS源码解析: dispatch_once是如何实现的?
在之前的一篇文章 iOS源码解析: NotificationCenter是如何实现的? 中,顺便介绍了在dispatch_once时使用跨线程操作而导致死锁的情况。本文基于dispatch_once的源码,进一步介绍一下iOS习以为常的单例模式。看似非常简单,不过实际要考虑下边…
iOS 从源码解析Run Loop (六):Run Loop 运行全过程解析
查看 CFRunLoop.h 文件,看到涉及 run loop 运行的函数有两个 CFRunLoopRun 和 CFRunLoopRunInMode 下面我们跟着源码学习一下这两个函数。 CFRunLoopRun 函数同 NSRunLoop 的 - (void)run; 函数,…
iOS之武功秘籍⑬: 多线程原理与GCD和NSOperation
多线程在iOS中有着举足轻重的地位,那么本篇文章就来带你全面走进她..... 所以,可以简单的理解为:进程是线程的容器,而线程用来执行任务.在iOS中是单进程开发,一个进程就是一个app,进程之间是相互独立的,如支付宝、微信、qq等,这些都是属于不同的进程. 运行:CPU 负责…
iOS底层学习——GCD底层源码分析(栅栏函数、信号量、调度组、事件源)
对GCD的相关内容进行分析探索,如栅栏函数、信号、调度组、事件源等,从使用方式、底层实现原理两个方面进行分析。
GCD 源码浅析
在iOS开发、面试时,是否对同步、异步、串行队列和并行队列的名词迷惑不解?当这些名词组合起来,同步串行队列,异步串行队列,同步并行队列以及异步并行队列,是否对这些情况在运行时的表现含糊不清,本文试着从
iOS 多线程知识体系构建(十一):GCD 源码:dispatch_group函数(超详细分析)
dispatch_group 可以将一组 GCD 任务关联到一起,可以监听这一组所有任务的执行情况,当组内所有任务异步执行完毕后我们可以得到一个或多个回调通知(使用 dispatch_group_notify 添加几个就能执行几个回调通知)。 dispatch_group_s …
iOS 多线程知识体系构建(十二):GCD 源码:dispatch_barrier_async 函数
dispatch_barrier_async 提交 barrier block 以在指定的调度队列上异步执行,同 dispatch_async 函数一样不会阻塞当前线程,此函数会直接返回并执行接下来的语句。 首先四个任务都不会阻塞主线程,两条 🔞 的打印会首先执行完毕,然后是…
iOS 多线程知识体系构建(九):GCD 源码:dispatch_async、dispatch_sync 函数
GCD 函数阅读过程中会涉及多个由大量宏定义组成的结构体的定义,需要一步一步进行宏展开才能更好的理解代码。 当我们向队列提交任务时,无论 block 还是 function 形式,最终都会被封装为 dispatch_continuation_s,所以可以把它理解为描述任务内容的…