volatile
volatile 不仅仅能解决内存可见性问题,也能禁止针对这个变量读写操作的指令重排序问题
面试时让写一个单例模式的代码
1:先写最初的版本(不考虑线程安全问题)
2:加上锁
3:加上双重 if
4:加上 volatile
阻塞队列
先进先出,线程安全并且带有阻塞功能
队列为空,尝试出队列,出队列操作就会阻塞,一直到阻塞队列不为空(反之)
消息队列
通过 topic 参数来对数据进行归类
出队列的时候指定 topic,每个 topic 下的队列先进先出
生产者消费者模型
一种解决多线程问题的解决方案
生产者——》阻塞(消息)队列———》消费者
作用:
解耦合:降低不同代码间互相影响的程度,降低耦合
削峰填谷:设置消息队列,防止客户端请求激增导致服务器瘫痪
BlockingQueue<>
<>中放数据类型
用 put 和 take,用别的(offer,peek)不带阻塞功能