1.要解决的问题
多个生产者、多个消费者线程在内存中完成合作
2.应用场景
- 需要用到并发内存消息队列的场景,如撮合交易
3.需要的基础知识
- CAS(CompareAndSwap)
- 位运算
4.解决思路
- 用数组不用链表,更快
- 保证生产、消费的持续,需是循环队列
- 不用Syncronized、不用显示锁,更快
- 使用AtomicReferenceArray中的CAS API,保证线程安全且更快
- 数组长度设置为2^n,位运算计算下标,更快
5.关键源码
- 数据成员
private AtomicReferenceArray<T> circleAtomicArray;
//最大2^32-1
static final int MAXIMUM_CAPACITY
本文地址:https://blog.csdn.net/Martian158/article/details/107596174
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论