标签:位置 可重入 mil 获取 通过 轻量 一段 针对 bsp
对象锁 针对独享,它只是在该对象的某个内存位置声明一个标志该对象是否拥有锁,所以它只会锁住当前的对象
类锁 锁住整个类,当有多个线程来声明这个类的对象时将会被阻塞,直到拥有这个类锁的对象被销毁或者主动是否了类锁
公平锁 多个线程在等待同一个锁时,必须按照申请锁的时间来一次获得锁
非公平锁 多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的的线程比先申请的线程优先获得锁(有可能会造成优先级反转或饥饿现象)
可重入锁 是指在同一个线程在外层获取锁的时候,在进入内层方法会自动获取锁
独占锁 是指该锁一次只能被一个线程所持有
共享锁 是指该锁可被多个线程所持有
互斥锁 概念似独占
读写锁 读写互斥,写写互斥,读不互斥
悲观锁 认为对于同一个数据的并发操作,一定是会发生修改的,哪怕没有修改,也会认为修改,悲观的认为,不加锁的并发操作一定会出问题
乐观锁 认为对于同一个数据的并发操作,是不会发生修改的,在更新数据的时候,会采用尝试更新,不断重试的方式更新数据,乐观的认为,不加锁的并发操作是没有事情的
分段锁 是一种设计,分段锁的设计目的是细化锁的粒度,当操作不需要更新整个数组的时候,就仅仅针对数组中的一项进行加锁操作
偏向锁 是指同一段同步代码一直被一个线程所访问,那么该线程会自动获取锁,降低锁的代价
轻量级锁 当锁是偏向锁时,被另一个线程所访问,偏向就会升级为轻量级锁,其它线程会通过自旋的形式获取锁,不会阻塞,提高性能
重量级锁 锁是轻量级锁的时候,另一个线程虽然是自旋,但自旋不会一直持续下去,当自旋一定次数的时候,还没有获取到锁,就会进入阻塞,该锁膨胀为重量级锁,重量级锁会让其它申请的线程进入阻塞,性能降低
自旋锁 指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,这样的好处是减少线程上下文切换的消耗,缺点是循环会消耗CPU
标签:位置 可重入 mil 获取 通过 轻量 一段 针对 bsp
原文地址:https://www.cnblogs.com/hpzhu/p/10162260.html