多线程——原子、非原子,自旋锁和互斥锁
来源:互联网 发布:爱因斯坦人工智能名言 编辑:程序博客网 时间:2024/04/28 12:08
- nonatomic:非原子属性,线程不安全的,效率高
- atomic:原子属性,线程安全的,效率相对低。
原子属性是一种单(线程)写多(线程)读的多线程技术,不过可能会出现脏数据
- atomic属性内部的锁称为 自旋锁
- 凡是线程安全的对象,内部肯定会加锁。
- 自旋锁和互斥锁
- 相同点:都能保证同一时间只有一个线程访问共享资源。都能保证线程安全。
- 不同点:
- 互斥锁:如果共享数据已经有其他线程加锁了,线程会进入休眠状态等待锁。一旦被访问的资源被解锁,则等待资源的线程会被唤醒。
- 自旋锁:如果共享数据已经有其他线程加锁了,线程会以死循环的方式等待锁,一旦被访问的资源被解锁,则等待资源的线程会立即执行。
- 自旋锁的效率高于互斥锁。
IOS开发建议
- 所有属性都声明为nonatomic
- 尽量避免多线程抢夺同一块资源
- 尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减少移动客户端的压力
1 0
- 多线程——原子、非原子,自旋锁和互斥锁
- ios 多线程——原子、非原子,自旋锁和互斥锁
- 原子、信号量、互斥锁、自旋锁
- 原子操作,自旋锁
- Linux 同步方法剖析--内核原子,自旋锁和互斥锁
- Linux 同步方法剖析--内核原子,自旋锁和互斥锁
- 原子和非原子属性
- 原子操作 信号量 自旋锁 互斥锁
- 原子操作 信号量 自旋锁 互斥锁
- 原子操作,自旋锁,互斥锁,信号量学习
- 信号量、互斥锁、自旋锁、原子操作
- LInux 的并发和竟态——中断、原子操作、自旋锁
- 多线程:原子性与非原子性
- 多线程锁和原子操作
- 1.原子属性和非原子属性:
- 原子操作、信号量、读写信号量和自旋锁
- 原子操作、信号量、读写信号量和自旋锁
- Linux 进程管理剖析: Linux 同步方法剖析 内核原子,自旋锁和互斥锁
- 关于DefaultTypeConverter工作原理以及totype参数
- Invert Binary Tree(easy)
- 关于C 中快排函数QSORT的用法
- heheda练数据结构
- HDU4324-Triangle LOVE-判断是否存在环(拓扑)
- 多线程——原子、非原子,自旋锁和互斥锁
- Web Service基础篇(一)之AXIS2
- Java学习笔记--组合数学
- 使用TCP协议的NAT穿透技术 (转)
- Android自动获得短信验证码
- 斗地主检测牌型(玩家)
- HDOJ 2016 数据的交换输出
- 5.1.3 date对象
- ubuntu java 环境变量设置