自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Swift基于引用计算的ARC内存管理方案

Swift中ARC有3种引用跟OC一样,Swift也是采用基于引用计算的ARC内存管理方案(针对堆空间)1、强引用:默认情况下,引用都是强引用2、弱引用(weak):通过weak定义弱引用必须是可选类型的var,因为实例销毁后,ARC会自动将弱引用设置为nilARC自动给弱引用设置nil时,不会触发属性观察器3、无主引用(unowned):通过unowned定义无主引用不会产生强引用,实例销毁后仍然存储着实例的内存地址(类似于OC中的unsafe_unretained)试图销毁后访问无主引用,

2020-06-23 22:26:25 43

原创 Objective-C 中的 protocol关键字

Objective-C 中的 protocol 里存在 @optional 关键字,被这个关键字修饰的方法并非必须要被实现。我们可以通过协议定义一系列方法,然后由实现协议的类选择性地实现其中几个方法。最好的例子我想应该是 UITableViewDataSource 和 UITableViewDelegate。前者中有两个必要方法-tableView:numberOfRowsInSection:-tableView:cellForRowAtIndexPath:复制代码原生的 Swift protoco

2020-06-23 21:55:43 69

原创 UIApplicationMain在 C 系语言中的函数

UIApplicationMain在 C 系语言中,程序的入口都是 main 函数。对于一个 Objective-C 的 iOS app 项目,在新建项目时, Xcode 将帮我们准备好一个 main.m 文件,其中就有这个 main 函数int main(int argc, char * argv[]){@autoreleasepool {return UIApplicationMain(argc, argv, nil,NSStringFromClass([AppDelegate class])

2020-06-23 20:52:45 114

原创 NSCache和NSMutableDictionary的相同点与区别

NSCache和NSMutableDictionary的相同点与区别相同点:NSCache和NSMutableDictionary功能用法基本是相同的区别:NSCache是线程安全的,NSMutableDictionary线程不安全,Mutable开发的类一般都是线程不安全的当内存不足时NSCache会自动释放内存(所以从缓存中取数据的时候总要判断是否为空)NSCache可以指定缓存的限额,当缓存超出限额自动释放内存NSCache的Key只是对对象进行了Strong引用,而非拷贝,所以不需要实

2020-06-23 20:02:02 162 1

原创 pthread_mutex如何定义一组跨平台的线程相关的 API

pthread_mutex表示 POSIX thread,定义了一组跨平台的线程相关的 API,pthread_mutex 表示互斥锁。互斥锁的实现原理与信号量非常相似,不是使用忙等,而是阻塞线程并睡眠,需要进行上下文切换。如果临界区的执行时间过长,使用自旋锁不是个好主意。之前我们介绍过时间片轮转算法,线程在多种情况下会退出自己的时间片。其中一种是用完了时间片的时间,被操作系统强制抢占。除此以外,当线程进行 I/O 操作,或进入睡眠状态时,都会主动让出时间片。显然在 while 循环中,线程处于忙等状态,白

2020-06-23 15:06:42 48

原创 OSSpinLock在管理普通线程时的操作

现代操作系统在管理普通线程时,通常采用时间片轮转算法(Round Robin,简称 RR)。每个线程会被分配一段时间片(quantum),通常在 10-100 毫秒左右。当线程用完属于自己的时间片以后,就会被操作系统挂起,放入等待队列中,直到下一次被分配时间片。OSSpinLock 不再安全,主要原因发生在低优先级线程拿到锁时,高优先级线程进入忙等(busy-wait)状态,消耗大量 CPU 时间,从而导致低优先级线程拿不到 CPU 时间,也就无法完成任务并释放锁。这种问题被称为优先级反转。为什么忙等会

2020-06-23 14:58:02 29

转载 签到规则

签到规则说明1、累计签到5次,获取抽奖机会一次;2、签到勋章的发放及累计次数从10月21号后开始;3、签到次数及抽奖次数自签到之日起只保留三个月,三个月后自动过期;声明:活动中的相关问题请与CSDN客服联系 kefu@csdn.net,我们会及时回复。...

2020-04-18 08:11:02 297

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除