互斥锁/自旋锁

为了防止多个线程同时访问一个属性或者变量,最为有效的方式是采用同步锁。

1、同步锁(互斥锁):

@synchronized(self) {
    // 要访问的属性或变量
}

等待的线程处于休眠状态。

2、自旋锁:

OC中的atomic属性采用自旋锁:

@property (atomic, strong) NSObject *obj;

等待的线程处于死循环状态。效率较高。一般用于操作量很小的操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,181评论 0 11
  • 第三章 Java内存模型 3.1 Java内存模型的基础 通信在共享内存的模型里,通过写-读内存中的公共状态进行隐...
    泽毛阅读 9,836评论 2 21
  • 一、多线程 说明下线程的状态 java中的线程一共有 5 种状态。 NEW:这种情况指的是,通过 New 关键字创...
    Java旅行者阅读 10,202评论 0 44
  • 1 临界区 1.1简介 在早期计算机系统中,只有一个任务进程在执行,并不存在资源的共享与竞争。随着技术和需求的飞速...
    Fly晴天里Fly阅读 12,951评论 2 13
  • 今日阅读《本田健的快乐致富圣经》 前言感悟: 1.大量阅读的习惯,阅读人物传记及创业者的成功故事。 2.看一个人对...
    小尾巴巨人阅读 1,724评论 0 0

友情链接更多精彩内容