当前位置: 首页 > news >正文

怎么用php自己做网站网站做友链有行业要求吗

怎么用php自己做网站,网站做友链有行业要求吗,深圳通公司网站,毕设网站自定义引用计数(Custom Reference Counting)是指类可以通过重写 retain/release 等方法来实现自己的引用计数管理机制。这通常用于特殊场景下的内存管理优化。 1. 判断是否使用自定义引用计数 inline bool objc_object::hasCustomRR() {// 检查类是否…

自定义引用计数(Custom Reference Counting)是指类可以通过重写 retain/release 等方法来实现自己的引用计数管理机制。这通常用于特殊场景下的内存管理优化。

1. 判断是否使用自定义引用计数

inline bool 
objc_object::hasCustomRR() {// 检查类是否实现了自定义的引用计数方法return ISA()->hasCustomRR();
}// 调用路径
id objc_object::retain() {if (fastpath(!ISA()->hasCustomRR())) {// 使用系统默认的引用计数机制return sidetable_retain();} else {// 使用类自定义的引用计数机制return ((id(*)(objc_object *, SEL))objc_msgSend)(this, @selector(retain));}
}

2. 自定义引用计数的实现示例

@interface CustomObject : NSObject@property (nonatomic, assign) NSUInteger customRefCount;@end@implementation CustomObject- (id)retain {@synchronized(self) {self.customRefCount++;}return self;
}- (void)release {BOOL shouldDealloc = NO;@synchronized(self) {self.customRefCount--;if (self.customRefCount == 0) {shouldDealloc = YES;}}if (shouldDealloc) {[self dealloc];}
}- (NSUInteger)retainCount {@synchronized(self) {return self.customRefCount;}
}

3. 使用场景

3.1 单例对象

@implementation MySingleton+ (instancetype)sharedInstance {static MySingleton *instance = nil;static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{instance = [[super allocWithZone:NULL] init];});return instance;
}// 防止释放
- (id)retain {return self;
}- (oneway void)release {// 不执行任何操作
}- (id)autorelease {return self;
}

3.2 特殊内存管理

@implementation PooledObject// 对象池中的对象
- (id)retain {// 不增加引用计数,而是返回到对象池[[ObjectPool sharedPool] markAsInUse:self];return self;
}- (void)release {// 不真正释放,而是返回到对象池[[ObjectPool sharedPool] returnToPool:self];
}

4. 注意事项

4.1 线程安全

- (id)retain {@synchronized(self) {// 确保线程安全的引用计数操作_customRefCount++;}return self;
}

4.2 内存泄漏防护

- (void)release {BOOL shouldDealloc = NO;{@synchronized(self) {_customRefCount--;if (_customRefCount == 0) {shouldDealloc = YES;}}}// 在同步块外执行 deallocif (shouldDealloc) {[self dealloc];}
}

5. 优缺点

优点:

  1. 可以实现特殊的内存管理策略
  2. 适合特定场景的优化
  3. 可以实现对象池等高级功能

缺点:

  1. 增加代码复杂度
  2. 可能引入bug
  3. 需要格外注意线程安全
  4. 可能影响系统的内存管理优化

6. 最佳实践

@implementation CustomRefCountObject// 1. 清晰的文档
/*** 这个类使用自定义引用计数来实现对象池* 注意:不要直接创建实例,请使用 getFromPool 方法*/// 2. 完整的方法实现
- (id)retain {if (_customManaged) {return [self customRetain];}return [super retain];
}// 3. 防御性编程
- (void)release {if (_customManaged) {[self customRelease];return;}[super release];
}// 4. 调试支持
- (NSUInteger)retainCount {if (_customManaged) {return [self customRetainCount];}return [super retainCount];
}

自定义引用计数应该谨慎使用,只在确实需要的特殊场景下采用。大多数情况下,系统默认的引用计数机制就足够了。

http://www.yayakq.cn/news/221943/

相关文章:

  • excel表格做网站扎区门户网站建设
  • 网站开发及推广是怎么回事wordpress 本地打开很慢
  • 网站图片太多怎么办如何查看网站做没做301跳转
  • 北京金融网站建设凡科申请的网站和qq空间一样吗
  • 建设银行成都官网招聘网站wordpress自动抓取
  • 锋创科技园网站建设典当行网站源码
  • vue大型网站开发wordpress添加前台漂亮注册页面
  • 如何查看一个网站的所有二级域名移动端网站模板怎么做的
  • 然后建设自营网站企业邮箱邮箱
  • 邯郸哪里做网站好企业品牌网站建设多少钱
  • 免费APP 微信 网站平台查网站开发语言
  • 怎么制作网站获取他人ip唐山网站建设怎么样
  • 企业商务网站建设站酷设计网站怎样下载图片
  • 英文 科技网站深圳网站建设优化服务
  • 用什么做flash游戏下载网站深圳网域官网
  • 集团公司网站建设策划传统营销
  • 大连辰熙大厦做网站连云港做网站制作首选公司
  • 做房产的有哪些网站如何做好网站推广
  • 有什么类型的网站业务网站制作
  • 兰州网站设计有限公司怎么把网站提交给搜索引擎
  • dedeampz 部署wordpress 网站访问慢织梦网站模板视频
  • 网页设计制作网站首页系统优化的约束条件
  • 网站的建设多少钱重庆网站建设入门培训
  • 常用网站网址怎么检查网站的死链
  • 四平网站公司专业的网站开发公司电话
  • 十大免费excel网站重庆建设工程信息网加密狗无法登陆
  • 网站织梦用字体矢量图做图标中邮保险网站
  • 网站seo 优化网站开发的收获体会
  • 海淘一号 网站 怎么做的免费推广引流平台app
  • 株洲企业关键词优化最新报价郑州网站优化培训