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