关闭

141人阅读 评论(0) 收藏 举报
分类:

NSLock(互斥锁)

@interface NSLock : NSObject

@protocol NSLocking
//上锁
- (void)lock;
//解锁
- (void)unlock;

@end
互斥锁:    (1)用于给某一段代码加锁,如果在某个线程中被上锁,在另外线程中就无法同时访问被上锁的一段代码。需要等待上锁的线程解锁后才能进行继续操作。
        (2)被互斥锁上锁的代码,只允许一个线程进行操作,其他线程需要等待解锁。
优点: 保证了程序的安全性  数据的同步性
缺点: 降低程序运行效率,延长操作时间
提高互斥锁性能:    将和数据操作无关的代码尽量放到锁外面,尽量给小范围代码上锁    

@synchronized(同步锁)

        @synchronized(<#token#>) {
            <#statements#>
        }
        //保持数据同步,原理和互斥锁相同
        //<#token#> 可用任意一个对象作为参数,同一个对象作为参数的两个代码块视为同一把锁

NSRecursiveLock(递归锁)

@interface NSRecursiveLock : NSObject

1   在递归函数中使用
    在递归的过程中需访问公共资源全局变量)
    需要上锁,防止数据不同步
2   可多次上锁,需相同次解锁才能释放锁住的代码
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

方法锁,对象锁,类锁区别

原文链接 首先的明白Java中锁的机制synchronized 在修饰代码块的时候需要一个reference对象作为锁的对象. 在修饰方法的时候默认是当前对象作为锁的对象. 在修饰类时候...
  • crazylzxlzx
  • crazylzxlzx
  • 2016-08-13 18:31
  • 12011

悲观锁,乐观锁,行锁,表锁,页锁,共享锁,排他锁

悲观锁:  顾名思义,很悲观,就是每次拿数据的时候都认为别的线程会修改数据,所以在每次拿的时候都会给数据上锁。上锁之后,当别的线程想要拿数据时,就会阻塞,直到给数据上锁的线程将事务提交或者回滚。传统的...
  • xiangwanpeng
  • xiangwanpeng
  • 2017-02-14 21:32
  • 2905

对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解

记得在上大学那会开始,在大学的课堂上,常常会听到老师讲什么共享锁,排它锁各种锁的词汇,以前仅仅听过一次就没有管了,并没有进行深入的研究 最近,在各种群里,又看见了什么乐观锁、悲观锁什么鬼的感觉很高级的...
  • puhaiyang
  • puhaiyang
  • 2017-05-16 17:26
  • 3525

互斥锁、自旋锁和读写锁

一、互斥锁 对于多线程的程序,访问冲突的问题是很普遍的,解决的办法是引入互斥锁(Mutex,MutualExclusive Lock),获得锁的线程可以完成“读-修改-写”的操作,然后释放锁给其它线...
  • rongwenbin
  • rongwenbin
  • 2014-01-17 14:45
  • 1365

互斥锁、读写锁 、 自旋锁和RCU锁

基础知识思考整理http://blog.csdn.net/aganlengzi/article/details/50996227 互斥锁 mutex:在访问共享资源之前对进行加锁操作,在访问完成之后进...
  • aganlengzi
  • aganlengzi
  • 2016-05-07 19:22
  • 4197

自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁

1、自旋锁    自旋锁可以使线程在没有取得锁的时候,不被挂起,而转去执行一个空循环,(即所谓的自旋,就是自己执行空循环),若在若干个空循环后,线程如果可以获得锁,则继续执行。若线程依然不能获得锁,才...
  • a314773862
  • a314773862
  • 2017-01-05 17:50
  • 3436

乐观锁和悲观锁的区别(最全面的分析)

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据...
  • rexct392358928
  • rexct392358928
  • 2016-08-17 14:49
  • 5503

偏向锁,轻量级锁与重量级锁的区别与膨胀

一直被这三个锁的膨胀问题所困扰,不知道到底实在什么时候会有偏向锁升级到轻量级锁,什么时候由轻量级锁升级到重量级锁。找到好久,也没有找到简洁明了的答案。        综合多个方面的描述综合自己的理解,...
  • choukekai
  • choukekai
  • 2017-03-19 20:44
  • 2644

同步 互斥锁 读写锁 区别

相交进程之间的关系主要有两种,同步与互斥。所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它 们之中的任一程序片段,只能等到该进程运行完这个程序片段...
  • u012884354
  • u012884354
  • 2015-06-30 09:50
  • 4880

Java对象锁和类锁全面解析(多线程synchronized关键字)

最近工作有用到一些多线程的东西,之前吧,有用到synchronized同步块,不过是别人怎么用就跟着用,并没有搞清楚锁的概念。最近也是遇到一些问题,不搞清楚锁的概念,很容易碰壁,甚至有些时候自己连用没...
  • u013142781
  • u013142781
  • 2016-06-17 15:51
  • 13072
    个人资料
    • 访问:10472次
    • 积分:781
    • 等级:
    • 排名:千里之外
    • 原创:70篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档