此篇博客所有源码均来自JDK 1.8 ReentrantLock,可重入锁,是一种递归无阻塞的同步机制。它可以等同于synchronized的使用,但是ReentrantLock提供了比synchronized更强大、灵…
标签:java锁
【死磕Java并发】-----分析 ArrayBlockingQueue 构造函数加锁问题
原文出处http://cmsblogs.com/ 『chenssy』 昨天有位小伙伴问我一个 ArrayBlockingQueue 中的一个构造函数为何需要加锁,其实这个问题我还真没有注意过。主要是在看 ArrayBlo…
java 中读写锁的使用
Java中synchronized关键字和Lock的区别与关联: 1、 synchronized的实现是由JVM来控制的,而synchronized不论是修饰方法还是同步代码块,拿到的都是对象的锁。 当synchroni…
java中互锁代码测试
class TestDeadLock implements Runnable { private int flag; private int cnt = 0; private static Object obj1 = n…
Java 同步函数和同步代码块锁
/* * 同步函数的使用的锁是this * * 同步函数和同步代码块的区别: * 同步函数的锁是固定的this。 * * 同…
java 偏向锁优化技术
1.简介 这是jvm的多线程优化技术. 偏向锁,它会偏向于第一个访问该锁的线程. 如果在接下来的运行过程中,该锁没有被其他的线程访问,则持有偏向锁的线程将永远不需要触发同步。 如果在运行过程中,遇到了其他线程抢占该锁,则…
Java多线程 -- JUC包源码分析1 -- CAS/乐观锁
乐观锁思想 乐观锁的几种具体实现 Java CAS原子操作/AtomicInteger实现 ABA问题/AtomicStampedReference实现 Mysql 乐观锁实现 Mysql MVCC 总结 乐观锁思想 问…
Java多线程 -- JUC包源码分析17 -- 弱一致性与无锁队列
–ConcurrentHashMap的弱一致性 –SynchronousQueue的弱一致性 –Exchanger的弱一致性 –Linux内核无锁队列的弱一致性 –总结 经过前面一系列的源码分析,我们基本覆盖了JUC包的…
Java并发编程 -- 再论锁的问题 -- 无锁与锁优化
在前面JUC源码分析和Disruptor分析序列中,我们已经反复讨论了锁与无锁的问题。 众所周知,在多线程程序中,锁是性能杀手。因此“锁优化”一直是多线程中被频繁探讨的一个问题。 本文将从“锁优化”这个应用层面,把前面的…
Java虚拟机性能管理神器 - VisualVM(9) 排查JAVA应用程序线程死锁
Java虚拟机性能管理神器 – VisualVM(9) 排查JAVA应用程序线程锁 1. JAVA应用程序线程锁原因 JAVA线程锁的例子和原因网上一大…
Java同步锁何时释放?
任何线程进入同步代码块、同步方法之前,必须获得同步监视器的锁定,那么何时会释放这个锁定呢?在程序中,是无法显式释放对同步监视器的锁的,而会在如下几个情况下释放锁。 1、当前线程的同步方法、代码块执行结束的时候释放 2、当…
Java架构-拜托,面试请不要再问我Redis分布式锁的实现原理
一、写在前面 现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。 所以咱们这篇文章就来聊聊分布式锁这…