锁的性能排行 锁的归类 自旋锁:线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显示释放自旋锁。自旋锁避...
锁的性能排行 锁的归类 自旋锁:线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显示释放自旋锁。自旋锁避...
clang源码 当我们对一个方法调用 进行 clang源码之后 发现 方法的调用 底层实现为 objc_msgSend 函数 即 消息发送 objc_msgSend(id r...
指针偏移 普通内存读取 分析: a和b的值都指向了10 ,但是地址不一样,这就是所谓的值拷贝 属于浅拷贝 a和b的地址之间相差4个字节,取决于a、和b 的类型 对象内存读取 ...
经典isa走位图 分析我们实例化的对象因为继承 由objc_object 结构体模板 所以里面 有isa。isa是一个 8字节64个二进制位的 联合体,他的位域 也告诉了我们...
前言 在编写一个应用程序时候,我们看到的入口函数都是main.m 里面的 main函数,曾以为这是程序的入口,其实不然,程序在执行main函数之前已经执行了+load和con...
在上篇文章 dyld 了流程分析[https://www.jianshu.com/p/b2344b308c14] 中我们大概了解了 程序启动 到main函数之前dyld做了哪...
在上一篇文章dyld与objc的关联中[https://www.jianshu.com/p/62ccdf77997a]了解了dyld与objc是如何关联的,本文来理解类的相关...
在上一篇文章类的加载(上)[https://www.jianshu.com/p/a05eeaf02724]了解了到了_read_images大概流程,也详细讲解了readCl...
一、分类及扩展 分类又名 Category、类别 分类中原则上只能添加方法。不能增加成员变量。 分类中可以访问原来类中的成员变量,但是只能访问@protect和@public...