码迷,mamicode.com
首页 > 其他好文 > 详细

原子属性与非原子属性,互斥锁与自旋锁介绍

时间:2016-07-18 18:09:24      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

nonatomic 非原子属性 非线程安全,适合内存小的移动设备(手机,平板...)

atomic 原子属性(线程安全,但需要消耗大量资源)针对多线程设计的,为默认值,保证同一时间只有一个线程能够写入;本身就是一把自旋锁;单写多读,单个线程写入,多个线程读取

注意:当重写属性的get与set方法时需要在@implementation后添加:@synthesiae 属性名 = _属性名;

 

互斥锁与自旋锁对比

 

互斥锁:如果发现其他线程正在执行锁定代码,线程会进入休眠(就绪状态),等其他线程时间到打开锁后线程会被唤醒(执行)

 

自旋锁:如果发现其他线程正在锁定代码,线程会用死循环方式一直等待锁定的代码执行完毕,自旋锁更适合执行不好使代码;

注意:几乎所有UIKit提供的类都是线程不安全的,所有UI更新操作都在主线程上执行

 

原子属性与非原子属性,互斥锁与自旋锁介绍

标签:

原文地址:http://www.cnblogs.com/niumingming920322/p/5680502.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!