01AQS简介01什么是AQSAQS全称为AbstractQueuedSynchronizer,就是抽象队列同步器。AQS是一个用来构建锁和其他同步组件的基础框架,使用AQS可以简单且高效地构造出应用广泛的同步器,它提供了一个FIFO队列,可以看成是一个用来实现同步锁以及其他涉及到同步功能的核心组件。02AQS的核心思想如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共
分类:
其他好文 时间:
2020-10-30 12:03:44
阅读次数:
18
一、AQS 什么是AQS fifo队列 + 原子int(表示状态) 原子int:AtomicInteger这个类的存在是为了满足在高并发的情况下,原生的整形数值自增线程不安全的问题; AQS(AbstractQueuedSynchronizer),AQS是JDK下提供的一套用于实现基于FIFO等待队 ...
分类:
其他好文 时间:
2020-05-21 19:20:38
阅读次数:
59
一、定义 1、堆:FIFO队列优先,先进先出。jvm只有一个堆区被所有线程所共享!堆存放在二级缓存中,调用对象的速度相对慢一些,生命周期由虚拟机的垃圾回收机制定。 2、栈:FILO先进后出,暂存数据的地方。每个线程都包含一个栈区!栈存放在一级缓存中,存取速度较快,“栈是限定仅在表头进行插入和删除操作 ...
分类:
其他好文 时间:
2020-05-18 00:25:23
阅读次数:
89
1、队列:在表的一端插入,表的另一端删除,允许插入的一端为队尾,允许删除的一端为队头。先进先出FIFO。 2、队列的基本操作 InitQueue(&Q):构造空队列 DestroyQueue(&Q):销毁队列 ClearQueue(&Q):清空队列 QueueEmpty(Q):判断队列是否为空 Qu ...
分类:
编程语言 时间:
2020-04-22 13:43:10
阅读次数:
80
线程队列 FIFO队列 LIFO 栈 优先级队列 事件Event 使用threading库中的Event对象。 对象包含一个可由线程设置的信号标志,它允许线程等待某些事件的发生。在 初始情况下,Event对象中的信号标志被设置为假。如果有线程等待一个Event对象, 而这个Event对象的标志为假, ...
分类:
其他好文 时间:
2020-03-01 10:29:31
阅读次数:
48
发现 zeromq 的 yqueue_t 模板类,其数据存储理念设计得非常妙。借这一理念,按照 STL 的泛型类 queue 的接口标准,我设计了一个线程安全的 单生产者/单消费者(单线程push/单线程pop) FIFO 队列,以此满足更为广泛的应用。 1. 数据存储理念的 ...
分类:
编程语言 时间:
2020-01-01 23:46:14
阅读次数:
110
从JDK1.5开始,引入了并发包java.util.concurrent(J.U.C),并发容器里的同步容器AQS(AbstractQueuedSynchronizer)是J.U.C的核心,AQS底层使用双向列表,基于模版方法设计 1、AQS使用Node实现FIFO队列,可以用于构建锁或者其他同步装 ...
分类:
其他好文 时间:
2019-12-16 20:52:09
阅读次数:
105
缓存算法(FIFO 、LRU、LFU三种算法的区别) FIFO算法# FIFO 算法是一种比较容易实现的算法。它的思想是先进先出(FIFO,队列),这是最简单、最公平的一种思想,即如果一个数据是最先进入的,那么可以认为在将来它被访问的可能性很小。空间满的时候,最先进入的数据会被最早置换(淘汰)掉。 ...
分类:
编程语言 时间:
2019-10-24 21:43:30
阅读次数:
102
概念 什么是消息 消息是指在两个独立的系统间传递的数据。这两个系统可以是两台计算机,也可以是两个进程。 消息是平台无关和语言无关的! 什么是队列 队列是一种数据结构,内部是用数组或链表实现的, 队列的特点是只能队尾放入,队头取出,即先入先出【FIFO】 队列的操作有入队和出队 也就是你有一个程序在产 ...
分类:
其他好文 时间:
2019-10-19 11:31:41
阅读次数:
1512
队列也是一种表,不同的是队列在一端进行插入而在另一端进行删除。 队列模型 队列的基本操作包括入队、出队操作。在表的末端插入元素,在表的开头删除元素,即先进先出(FIFO)。 队列的数组实现 对于每一个队列数据结构,保留一个数组items以及位置front和back,分别表示队列的两端,还要记录元素的 ...
分类:
编程语言 时间:
2019-10-04 16:50:39
阅读次数:
88