摘要:
为什么要使用RabbitMQ? 消息队列的作用 异步调用 系统解耦 削峰限流 消息通讯 消息队列的缺点 系统可用性降低 系统稳定性降低 分布式一致性问题(可靠消息最终一致性的分布式事务方案解决) RabbitMQ的优势 支持高并发、高吞吐、性能好 有完善的后台管理界面 它还支持集群化、高可用部署架构 阅读全文
摘要:
深入理解synchronized关键字 synchronized是并发编程中重要的使用工具之一,我们必须学会使用并且掌握它的原理。 概念及作用 JVM自带的关键字,可在需要线程安全的业务场景中使用,来保证线程安全。 用法 按照锁的对象区分可以分为对象锁和类锁 按照在代码中的位置区分可以分为方法形式和 阅读全文
摘要:
本文有些长,贴的源码较多,请各位看官自备花生瓜子啤酒饮料矿泉水小板凳,且听我慢慢道来。 Java面试都会问集合,集合必问HashMap,CurrentHashMap,后面的套路就肯定会问多线程、线程安全等等,今天就来学习下HashMap,不对,是补习下。 1、HasMap的属性 先看下HashMap 阅读全文
摘要:
1、线程相关概念 1)、线程与进程的区别 线程是操作系统调度的最小单元,也叫轻量级进程,而进程是操作系统中的应用程序,在进程中可以创建多个线程。 2)、上下文切换 我们知道现代处理器都是多核的,几核处理器只能同时处理几个线程,多线程执行程序看起来是同时进行,实际上是CPU在多个线程之间快速切换执行, 阅读全文
摘要:
前言: 本文基于jdk1.8。 前段时间换工作,面试时候每次都会问线程的问题,自己对多线程方面的知识没有花时间研究过,所以一问到线程就懵了,最近特地买了方腾飞老师的《Java并发编程的艺术》这本书学学这方面的知识。这篇随笔主要是我对线程池学习的总结,如有写的不好或不对的地方欢迎指出! 1、线程池的基 阅读全文
摘要:
一、结论 双重校验锁的单例模式代码如下: public class Singleton { private static Singleton singleton; private Singleton() {} public static Singleton getSingleton() { if ( 阅读全文