Java中多线程同步的实现

本文介绍了Java中实现线程同步的三种方式:同步代码块、同步方法和Lock锁机制。同步代码块通过synchronized关键字确保共享资源的原子操作;同步方法同样使用synchronized修饰,确保同一时刻只有一个线程访问;Lock锁提供了更灵活的控制,包括lock()和unlock()方法,以及实现类ReentrantLock。
摘要由CSDN通过智能技术生成

为了保证每个线程都能正常执行的原子操作,java中引入线程同步机制有三种方式:
1.同步代码块:当多个线程使用同一个共享资源时,可以将处理共享资源的代码放在一个使用synchronized关键字来修饰的代码块中其语法格式如下:
synchronized(lock){
操作共享代码块
}
lock是一个锁对象,它可以使某一个线程抢夺到执行权后进入同步代码块执行其中的代码直到共享资源被处理完位置。
案列:在这里插入图片描述
2.同步方法:在方法面前同样可以使用synchronized关键字来修饰,被修饰的方法为同步方法,它能实现同步同步代码块相同的功能其语法格式如下:
synchronized 返回值类型 方法名(参数列表){}
被synchronized修饰的方法在某一时刻只允许一个线程访问共享资源
案列:在这里插入图片描述
3.Lock锁机制
Lock锁机制提供了比synchronized代码块和synchronized方法更广泛的锁定操作,Lock也有同步代码块、同步方法的功能相比之下Lock还有更精准的线程语义和性能,主要方法如下:
public void lock(): 加同步锁
public void unlock():释放同步锁
Lock接口有一个实现类ReentrantLock
案列:在这里插入图片描述
最后的结果:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值