iOS-底层原理 29:锁的原理

iOS-底层原理 29:锁的原理

本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析锁借鉴一张锁的性能数据对比图,如下所示可以看出,图中锁的性能从高到底依次是:OSSpinLock(自旋锁) -> dispatch_semaphone(信号量) -> pthread_mutex(互...

iOS-底层原理 28:GCD 之 底层原理分析

iOS-底层原理 28:GCD 之 底层原理分析

本文是队列创建、同步/异步函数、单例、信号量以及调度组的底层原理分析队列创建在上一篇文章iOS-底层原理 26:GCD 之 函数与队列中,我们理解了队列与函数,知道队列的创建时通过GCD中的dispatch_queue_create方法,下面我们在libdispatch.dylib去探索队列是如何创...

iOS-底层原理 26:GCD 之 函数与队列

iOS-底层原理 26:GCD 之 函数与队列

本文的主要目的是理解不同队列与不同函数之间组合的情况GCD简介GCD全称是Grand Central Dispatch纯C语言,提供例如非常强大的函数GCD优势GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调...

iOS-底层原理 25:多线程原理

iOS-底层原理 25:多线程原理

本文的目的在于了解进程、线程、多线程、线程池等的基本概念及原理线程 和 进程线程和进程的定义线程线程时进程的基本执行单元,一个进程的所有任务都在线程中执行进程要想执行任务,必须的有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为 主线程 或者 UI线程进程进程是指在系统中正在运行...

iOS-底层原理 24:内存五大区

iOS-底层原理 24:内存五大区

在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域。如下图所示下面分别介绍这五大区栈区(Stack)定义栈是系统数据结构,其对应的进程或者线程是唯一的栈是向低地址扩展的数据结构栈是一块连续的内存区域,遵循先进后出(FILO)原则栈的地址空间在iOS中是以0X7开头栈区一般在运行时分配...

iOS-底层原理 23:KVO 底层原理

iOS-底层原理 23:KVO 底层原理

KVO,全称为Key-Value observing,中文名为键值观察,KVO是一种机制,它允许将其他对象的指定属性的更改通知给对象。在Key-Value Observing Programming Guide官方文档中,又这么一句话:理解KVO之前,必须先理解KVC(即KVO是基于K...

iOS-底层原理 22:KVC 底层原理

iOS-底层原理 22:KVC 底层原理

KVC的全称是Key-Value Coding,翻译成中文是 键值编码,键值编码是由NSKeyValueCoding非正式协议启用的一种机制,对象采用该协议来间接访问其属性。既可以通过一个字符串key来访问某个属性。这种间接访问机制补充了实例变量及其相关的访问器方法所提供的直接访问。KVC 相关AP...

iOS-底层原理 21:Method-Swizzling 方法交换

iOS-底层原理 21:Method-Swizzling 方法交换

method-swizzling 是什么?method-swizzling的含义是方法交换,其主要作用是在运行时将一个方法的实现替换成另一个方法的实现,这就是我们常说的iOS黑魔法,在OC中就是利用method-swizzling实现AOP,其中AOP(Aspect Oriented Program...

iOS-底层原理 20:OC底层面试解析

iOS-底层原理 20:OC底层面试解析

【面试-1】Runtime Asssociate方法关联的对象,需要在dealloc中释放?当我们对象释放时,会调用dealloc1、C++函数释放 :objc_cxxDestruct2、移除关联属性:_object_remove_assocations3、将弱引用自动设置nil:weak_clea...

iOS-底层原理 19:类扩展 与 关联对象 底层原理探索

iOS-底层原理 19:类扩展 与 关联对象 底层原理探索

本文的主要目的是针对类的加载的一个扩展,主要讲讲类拓展和分类的底层实现原理【面试题】类扩展 与 分类 的区别1、category 类别、分类专门用来给类添加新的方法不能给类添加成员属性,添加了成员属性,也无法取到注意:其实可以通过runtime 给分类添加属性,即属性关联,重写setter、gett...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

社区圈子

mPaaS 移动开发平台
mPaaS 移动开发平台
mPaaS 源于蚂蚁集团金融科技,为 App 开发、测试、运营及运维提供云到端的一站式解决方案,致力于提供高效、灵活、稳定的移动研发、管理平台。 官网地址:https://www.aliyun.com/product/mobilepaas/mpaas
152+人已加入
加入
相关电子书
更多
Facebook iOS App技术演化十年之路
From Java_Android to Swift iOS
深入剖析 iOS 性能优化
立即下载 立即下载 立即下载