学计算机的那个

不是我觉到、悟到,你给不了我,给了也拿不住;只有我觉到、悟到,才有可能做到,能做到的才是我的.

0%

Association 关联对象

默认情况下,由于分类底层结构的限制,不能直接给 Category 添加成员变量,但是可以通过关联对象间接实现 Category 有成员变量的效果。

阅读全文 »

属性关键字和所有权修饰符

atomic 修饰的属性是怎么样保存线程安全的?

atomic 原子性(默认),编译器会自动生成互斥锁,对setter和getter方法进行加锁,可以保证属性的赋值和取值的原子性是线程安全的,但不包括操作和访问

比如说atomic修饰的是一个数组的话,那么我们对数组进行赋值和取值是可以保证线程安全的,但是如果我们对数组进行操作,比如说给数组添加对象或者移除对象,是不在atomic的负责范围之内的,所以给被atomic修饰的数组添加对象或者移除对象是没办法保证线程安全的。

阅读全文 »

计算机渲染原理

CPU与GPU的架构

设计目的

CPU 是运算核心与控制核心,需要有很强的运算通用性,兼容各种数据类型,同时也需要能处理大量不同的跳转、中断等指令,因此 CPU 的内部结构更为复杂。

而 GPU 则面对的是类型统一、更加单纯的运算,也不需要处理复杂的指令,但也肩负着更大的运算任务。

阅读全文 »

Hash就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。Hash算法没有一个固定的公式,只要符合Hash思想的算法都可以被称为是Hash算法

阅读全文 »

为什么需要学习Objective-C底层实现,因为底层使用的技术都是值得花时间学习的,特别是使用的数据结构,通常都是权衡使用场景,以及考虑后续可持续迭代的优质代码。

OC为了实现其动态性,将方法的调用包装成了SEL寻找IMP的过程。OC采用了方法缓存的机制来提高调用效率,也就是cache_t,其作用就是缓存已调用的方法。

阅读全文 »