iOS 中的锁总结

线程锁是为了保护共享资源的一种机制;对共享资源进行访问的代码块称为临界区

自旋锁

自旋锁在任一时刻只能有一个持有者(只能有一个线程对象获得锁),如果资源已经被占用(自旋锁已经被别的线程持有),新的资源申请者会一直循环检查锁是否已经被释放,因此得名自旋

自旋锁是一种比较低级的保护数据结构或代码片段的原始方式,这种锁容易产生两个问题:

阅读更多...

Runloop

Runloop 是一种事件处理模型;在很多系统和框架中都有实现。它的作用是保证线程能不停的处理新的任务,而不是处理完任务之后就退出。

阅读更多...

Python 上下文管理

有很多操作需要处理上下文;即需要在操作前打开上下文,在操作完成后清理

例如:

  • 读取文件内容,需要先获取文件句柄,读取文件,并要处理读取时的异常;最后需要关闭文件句柄
阅读更多...

Objective-C 编码

Objective-C中所有的类、对象、方法、协议、分类等实质都是通过C中的结构体定义,再由runtime的消息机制赋予了它们灵魂,模拟出了面向对象的特性。
为了良好的性能和资源消耗,在消息传递以及执行时需要将携带的信息尽可能的压缩,因此有一套单字符的编码来映射C中结构体与ObjC中的面向对象类型。

阅读更多...

Objective-C简介

Objective-C是C语言的严格超集--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C的原意就是在C语言主体上加入面向对象的特性

阅读更多...
  • Copyrights © 2017-2021 HonQi

请我喝杯咖啡吧~