java中多线程reentlock_java多线程系列(四)---ReentrantLock的使用

本文详细介绍了Java中ReentrantLock的使用,包括其特性、与synchronized的区别、await/signal方法、公平锁与非公平锁的概念,以及读写锁的应用。通过实例展示了ReentrantLock如何实现线程同步,以及如何创建和控制线程的等待与唤醒。
摘要由CSDN通过智能技术生成

Lock的使用

前言:本系列将从零开始讲解java多线程相关的技术,内容参考于《java多线程核心技术》与《java并发编程实战》等相关资料,希望站在巨人的肩膀上,再通过我的理解能让知识更加简单易懂。

目录

ReentrantLocak特性(对比synchronized)

尝试获得锁

获取到锁的线程能够响应中断

ReentrantLock(重入锁)

public class MyService {

private Lock lock = new ReentrantLock();

public void testMethod() {

lock.lock();

for (int i = 0; i < 5; i++) {

System.out.println("ThreadName=" + Thread.currentThread().getName()

+ (" " + (i + 1)));

}

lock.unlock();

}

}

效果和synchronized一样,都可以同步执行,lock方法获得锁,unlock方法释放锁

await方法

public class MyService {

private Lock lock = new ReentrantLock();

private Condition condition=lock.newCondition();

public void testMethod() {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值