`

ReenTrantLock 与synchronized的区别与使用

阅读更多

java锁就Lock与synchronized两种,ReenTrantLock是Lock的实现 通过学习感觉ReenTrantLock相对于synchronized来说更加灵活

 

两种锁的说明: synchronized锁 分为两种:

1.锁方法

2.锁代码块

 

ReenTrantLock锁

逻辑锁,根据自己的逻辑需要去控制锁 Lock锁需要自己去定义,

并控制锁的开关, lock.lock(); lock.unLock();

ReenTrantLock是可重入锁,可以多次对自身进行递归,最大好20亿次左右

 

synchronized的使用说明:

锁方法

public static synchronized void test(){ //处理逻辑 }

锁块 public void test(){

synchronized(obj){

//逻辑处理

}

}

 

ReenTrantLock的使用

final ReenTrantLock lock = new ReenTrantLock ();

public void test(){

try{

lock.lock();

//逻辑处理

}finally{

//一定要进行解锁

lock.unlock();

}

}

使用2:

lock对象可以进行方法传递

m1(){

lock.lock();

}

m2(final ReenTrantLock lock){

逻辑处理

try{

......

}finally{

lock.unlock();

}

}

这两者的区别 synchronized最大范围是方法方法锁,ReenTrantLock 的代码块锁可以穿插方法,比synchronized更加灵活,

还有.ReentrantReadWriteLock的使用方法大家可以看看相关的API

 

分享到:
评论

相关推荐

    ReentrantLock与synchronized区别

    java语言 并发编程 ReentrantLock与synchronized区别 详解

    ReentrantLock与synchronized

    在Java多线程编程中,`ReentrantLock`和`synchronized`都是用于实现线程同步的重要工具,确保在并发环境中数据的一致性和正确性。两者虽然都能实现互斥访问,但在功能、性能以及使用场景上有所不同。下面我们将深入...

    ReentrantLock 与 synchronized 简介

    ### ReentrantLock 与 synchronized 的比较 #### 一、引言 在Java中,多线程和并发控制一直是程序员关注的重点。随着Java的发展,其语言本身及标准库提供了丰富的工具来帮助开发者处理并发问题。其中,`...

    深入java并发编程,使用ReentrantLock和 Synchronized加锁

    在Java并发编程中,理解和熟练使用同步机制是至关重要的,这包括了`ReentrantLock`和`synchronized`关键字。这两个工具都是为了确保多线程环境中的数据一致性与安全性,防止出现竞态条件和死锁等问题。 `...

    第15讲 synchronized和ReentrantLock有什么区别呢?1

    ReentrantLock,即可重入锁,是Java 5引入的锁实现,它在功能上与synchronized相似,但提供了更多高级特性。通过调用lock()和unlock()方法,程序员可以更精确地控制锁的获取和释放。ReentrantLock的一个关键特性是可...

    Lock、Synchoronized和ReentrantLock的使用

    Lock、Synchronized 和 ReentrantLock 的使用 Lock、Synchronized 和 ReentrantLock 是 Java 中三种常用的同步机制,每种机制都有其特点和使用场景。下面对这三种机制进行详细的分析和比较。 一、Synchronized ...

    Java中ReentrantLock的使用.docx

    但在JDK 6.0及以后的版本中,synchronized的性能得到了显著提升,与ReentrantLock的性能差距已经不大。尽管如此,ReentrantLock仍然有其独特之处,比如它可以提供公平锁和非公平锁的选择,支持中断锁等待,以及更细...

    第15讲丨synchronized和ReentrantLock有什么区别呢?.html

    第15讲丨synchronized和ReentrantLock有什么区别呢?.html

    22 到底哪把锁更适合你?—synchronized与ReentrantLock对比.pdf

    Java并发编程中,锁是控制多线程对共享资源访问的关键工具。在Java中,有两种主要的锁机制...对于初学者,理解并正确使用`synchronized`是基础,随着经验的增长和需求的复杂化,`ReentrantLock`的特性会显得更为重要。

    简单聊聊Synchronized和ReentrantLock锁.docx

    在某些简单场景下,Synchronized的使用更加简便,且由于其自动释放的特性,降低了因忘记释放锁而导致的问题。Synchronized的另一个优点是其内置性,对大多数Java开发者来说更为熟悉,因此在代码可读性和维护性方面有...

    synchronized ReentrantLock volatile Atomic 原理分析.docx

    《Java并发编程:synchronized、ReentrantLock、volatile与Atomic深度解析》 在Java多线程编程中,正确地管理共享资源是至关重要的。本文将深入探讨四种关键的并发控制机制:synchronized关键字、ReentrantLock(可...

    Java多线程之ReentrantLock与Condition - 平凡希 - 博客园1

    Java中的`ReentrantLock`是Java并发包`java.util.concurrent.locks`中的一个高级锁机制,它是可重入的互斥锁,具有与`synchronized`关键字相似的同步性,但提供了更多的灵活性和控制功能。本篇文章将深入探讨`...

    Java synchronized使用案例

    1. **ReentrantLock**:具有`synchronized`的可重入性,并且提供公平锁、非公平锁选择,支持尝试获取锁、中断锁等待等高级功能。 2. **Semaphore**:信号量,可以控制同时访问特定资源的线程数量。 3. **...

    java ReentrantLock详解.docx

    `ReentrantLock`是Java并发编程中的一种高级锁机制,它是`java.util.concurrent.locks`包中的类,提供了比`synchronized`关键字更丰富的功能和更细粒度的控制。相较于`synchronized`,`ReentrantLock`的主要优势在于...

    Java中的ReentrantLock类最全讲义

    目录: 简介 ReentrantLock的基本用法 2.1 创建ReentrantLock 2.2 获取锁和释放锁 公平性与非公平性 3.1 公平锁 3.2 非公平锁 中断响应 ...ReentrantLock与synchronized的对比 最佳实践与注意事项

    ReentrantLock源码的使用问题详解.docx

    ReentrantLock,可重入锁,是Java并发编程中一个重要的锁实现,它提供了比synchronized更高级别的控制能力,包括公平性和非公平性选择。本文将深入探讨ReentrantLock的原理,特别是其公平锁与非公平锁的概念,以及...

    使用ReentrantLock和Lambda表达式让同步更

    `ReentrantLock`是Java并发包`java.util.concurrent.locks`中的一个类,它是可重入的互斥锁,具备与`synchronized`相同的基本行为,但增加了许多高级功能。以下是一些`ReentrantLock`的主要特性: 1. **可重入性**...

    synchronized关键字的实质及用法

    8. ** volatile与synchronized的区别** `volatile`关键字确保了变量的可见性,但不能保证原子性。`synchronized`则可以保证原子性和可见性,但会带来更高的开销。根据实际需求选择合适的方式。 9. **使用场景** ...

Global site tag (gtag.js) - Google Analytics