显式锁

作者: 策马踏清风 | 来源:发表于2020-08-21 17:05 被阅读0次

Lock接口是语言层面的锁

一、 常用方法

  • lock()加锁
  • lockInterruptibly()可中断获取锁的过程
  • unlock()释放锁
  • tryLock()尝试获取锁
  • tryLock(long, TimeUnit)可设置获取锁超时

二、对比synchronized

  • 不可中断
  • 不可超时
  • synchronized更简洁
  • 需要锁中断、超时、尝试的时候使用Lock锁,其他尽量使用synchronized

三、可重入锁

  • synchronized是隐式可重入锁
  • ReentrantLockLock的可重入锁实现类,相当于synchronized的代码层实现

四、公平和非公平锁

  • 公平锁,先获取先执行。
  • 非公平锁,新来的执行。效率高,取消了新来的锁的状态切换过程,直接执行。
  • ReentrantLock(true)公平锁
  • ReentrantLock()默认是非公平锁

五、读写锁

  • 排它锁,synchronizedReentrantLock都是排它锁,只允许一个线程获取数据。
  • 读写锁,维护读和写两个锁。适用于读多写少的操作。
  • ReadWriteLock接口下的ReentrantReadWriteLock
  • getlock = readWriteLock.readLock()获取读锁,getlock.lock()
  • setlock = readWriteLock.writeLock()获取写锁,getlock.lock()
    锁的一般用法
lock.lock();
try{
  //...
} finally {
    lock.unlock();
}

六、Condition接口

  • 实现线程唤醒(通知)功能
  • 每个锁的实现都有getCondition方法可以获取,一个锁可以多个

6.1使用

lock.lock();
try{
  //...
cond.signal();// 唤醒,因为和等待线程是一一对于的,所以不用All
} finally {
    lock.unlock();
}
lock.lock();
try{
    try{
        cond.await();//等待唤醒
    }catch(InterruptedException e) {
        e.printStackTrace();
    }
} finally {
    lock.unlock();
}

相关文章

  • 从 synchronized 到 CAS 和 AQS - 彻底弄

    Java 中的并发锁大致分为隐式锁和显式锁两种。隐式锁就是我们最常使用的 synchronized 关键字,显式锁...

  • 13. 显式锁:Lock接口

    显式锁是自JDK1.5开始引入的排它锁。 显式锁的使用 ReentrantLock(可重入锁) Reentrant...

  • 05.锁机制和条件对象简述

    Java的锁机制主要分内置锁(隐式锁)和显式锁。 内置锁 Java每个对象都有一个内置的锁对象,这些锁对象不需要显...

  • 线程安全,内存可见性,竞态条件,内置锁,显式锁概述

    线程安全,内存可见性,竞态条件,内置锁,显式锁概述 在Java中按照锁的实现方式可以划分为内置锁和显式锁,内置锁有...

  • Android面试知识点(三)*

    1、java里的锁总结(synchronized隐式锁、Lock显式锁、volatile、CAS)[https:/...

  • 显式锁

    在JAVA5.0之前,在协调对共享对象的访问时,有synchronized和volatile两种机制。JAVA5....

  • 显式锁

    在Java5.0之前,在协调对共享对象的访问时可以使用的机制有synchronized和volatile.Java...

  • 显式锁

    Lock接口是语言层面的锁 一、 常用方法 lock()加锁 lockInterruptibly()可中断获取锁的...

  • 3.ReentrantLock核心原理分析

    ReentrantLock核心原理分析 ReentrantLock显式锁,相对于synchronized隐式锁而言...

  • 高并发(13)-显式锁与内置锁

    @TOC 前言 上篇文章讲解了什原子的操作类,今天就讲讲并发中的显式锁与内置锁。 什么是显式锁与内置锁 多线程中,...

网友评论

      本文标题:显式锁

      本文链接:https://www.haomeiwen.com/subject/jsodjktx.html