lock和sync区别

Synchronized(锁):

synchronized 是 Java 中的一个关键字,用于同步方法或代码块,确保只有一个线程可以执行被 synchronized 修饰的代码段。
它是一种内置的同步机制,提供了一种简单的方式来实现对共享资源的互斥访问。
synchronized 可以用于方法或特定的代码块,并且可以自动获取和释放锁。
它不支持尝试获取锁、超时等待或中断等待等操作。
synchronized 锁是非公平的,不保证等待时间最长的线程优先获取锁。

Lock(锁):

Lock 是 Java java.util.concurrent.locks 包中的一个接口,提供了与 synchronized 不同的锁操作。
Lock 允许更灵活的锁控制,例如尝试获取锁、超时等待、可中断的锁获取等。
它通常与 try-finally 块一起使用,以确保锁最终被释放,防止死锁。
Lock 可以实现公平锁,即按照线程等待的顺序来分配锁。
Lock 接口的一些常见实现包括 ReentrantLock 和 ReadWriteLock。

如果有侵权,请联系我删除。谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小确兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值