Java锁
ChrisyyGuan
随便记录一下日常遇到的问题,希望能够帮助到大家
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sychronized和ReentrantLock对比
⑤二者的底层实现不一样:synchronized是同步阻塞,采用的是悲观并发策略;ReentrantLock是同步非阻塞,采用的是乐观并发策略。synchronized是java中的关键字,是由内置语言实现的。synchronized隐式获取和释放锁。③ReentrantLock是API级别的,synchronized是JVM级别的。④ReentrantLock可以定义公平锁,可以通过Condition绑定多个条件。⑧ReentrantLock可以通过分别定义读写锁提高多个线程读操作的效率。原创 2024-03-27 16:26:04 · 413 阅读 · 1 评论 -
lock, tryLock和lockInterruptibly的区别
tryLock(long timeout, timeUnit unit)可指定等待时间,超出指定时间未获得锁,则返回false.tryLock()会尝试获取锁,若有可用锁,便获取该锁并返回true;否则,立即返回false.在锁中断时,lockInterruptibly会抛出异常,lock不会。如果有可用锁,便获取该锁;否则将会阻塞等待直到获取到该锁。原创 2024-03-27 15:43:20 · 269 阅读 · 1 评论 -
Java中的锁
Java中的锁用于保证线程在多并发情况下数据的一致性,可以在使用对象和调用方法之前加锁,保证同一时间只有一个线程持有对象的锁,从而保障数据的安全。锁从乐观和悲观的角度可以分为乐观锁和悲观锁,从获取资源的公平性角度可以分为公平锁和非公平锁,资源是否共享可以分为共享锁和独占锁,从锁的状态可以分为偏向锁、轻量级锁和重量级锁。同时,在JVM中还设计了自旋锁来更好的利用CPU。原创 2024-03-23 12:34:04 · 386 阅读 · 1 评论
分享