摘要:
1、公平锁: 是指多个线程按照申请锁的顺序来获取锁。 非公平锁的优点在于吞吐量比公平锁大。 2、非公平锁: 是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可能,会造成优先级反转或者饥饿 现象。 3、可中断锁: synchronized就不是可中断锁,而 阅读全文
摘要:
AQS: 是AbstractQueuedSynchronizer的简称,JUC的核心。 底层是sync queue双向链表,还可能有condition queue单向链表,使用Node实现FIFO队列,可以用于构建同步队列或者其他同步装置的基础框架。 使用了int类型表示状态,在AQS中有个stat 阅读全文
摘要:
一、线程安全性: 当多个线程访问一个一个对象或者方法的时候,在编写代码的时候,不需要进行额外的处理,就像在单线程环境下一样处理,此时如果还能得到正确的结果,就可以说是线程安全。如果在编写代码的时候,需要进行一些同步的操作(例如使用Synchronized关键字),或者考虑多线程运行的调度和切换(例如 阅读全文
摘要:
本文参考慕课网相关视频和博客https://mp.weixin.qq.com/s/tV0MfDdJqGwGMHCIkqnAgA,图也是这个博客的,这篇只是自己的简单总结,想要深入理解可以访问这两块内容。 一、内存模型定义 java memory model(简称JMM),这是一个抽象的概念,不是真实 阅读全文