(引用计数表和weak表)散列表

2021-12-01  本文已影响0人  Shineyok

散列表

 散列表其实是一个哈希表,下面挂载了64张表,每张表都包含自旋锁,引用计数表,弱引用表

引用计数存储

如果引用计数小于19个二进制位,则存储在isa指针的extra_rc;如果引用计数过大,则isa中的has_sidetable_rc就为1,引用计数就存储在一个叫SideTable的结构体的refcnts成员中,refcnts是个散列表。

ARC即自动引用计数

使用ARC应遵循原则

ARC自动内存管理原则———谁持有谁释放

weak

weak实现

Runtime维护了一个全局的CFMutableDictionary,来保存对象的weak指针列表。key为所指对象的内存地址,由于每个对象可能有多个weak指针,value则为weak指针的地址集合(CFMutableSet类型)。

weak实现原理

上一篇 下一篇

猜你喜欢

热点阅读