博客
分类
标签
归档
随记
博客
分类
标签
归档
随记
抽象同步队列AQS
AQS简介 AbstractQueuedSynchronizer类简称为(AQS),它是实现同步器的基本组件,内部使用int类型来表示同步状态,并提供CAS方法来操作这个同步状态。如常用的ReentrantLock/Semaphore/CountDownLatch等等就是基于AQS实现的,用法是通过继承AQS实现其模版方法,然后将子类作为同步组件的内部类。 上图是该类的属性,AQS是一...
2020-04-24
多线程
多线程
閱讀全文
原子变量操作类
JUC简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。 在JUC并发包中包含有AtomicInteger,AtomicLong,...
2020-04-23
多线程
多线程
閱讀全文
synchronized和volatile关键字
java内存模型 java内存模型规定,将所有的变量都放在主内存,当线程使用变量时,会把该变量复制到线程的工作内存,因此线程读写变量操作的是自己工作内存中的变量。 下图是一个双核cpu的系统架构,每个核都有自己的控制器、运算器、一级缓存,其中控制器包含一组寄存器和操作控制器,运算器负责进行算术逻辑运算。在这个架构中cpu还共享一个二级缓存。 其中java内存模型里的线程工作内存对应...
2020-04-23
多线程
多线程
閱讀全文
线程基本概念和操作
线程基本概念 首先我们要先了解进程的基本概念,因为线程是进程中的一个实体。进程是操作系统中进行资源调度和调度的基本单位,线程则是进程的一个执行路径。 一个进程中包含多个线程,多个线程共享进程的堆和方法区资源,每个线程有独立的程序计数器和栈区域。 线程的三种创建方式类继承Thread12345678910111213public class TestNewThread { ...
2020-04-21
多线程
多线程
閱讀全文
java集合-HashMap
HashMap简介 HashMap用来存放键值对,它基于哈希表的Map非同步接口实现,它继承了AbstractMap,实现了Map,Cloneable,Serializable等接口。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当...
2020-04-20
集合
集合
閱讀全文
java集合-LinkedList
LinkedList简介 LinkedList数据结构是双端链表,所以它支持高效的插入和删除操作,继承于AbstractSequentialList,实现了Serializable,List,Deque,Cloneable等接口 LinkedList继承AbstrctSequentialList,实现了List接口,他是一个链表队列,提供了相关的添加,删除,插入,遍历等操作 Link...
2020-04-19
集合
集合
閱讀全文
java集合-ArrayList
ArrayList简介 ArrayList数据结构是基于数组,与java原本数组不一样的是它能够动态增长,继承于AbstractList,实现了List,Serializable,RandomAccess,Cloneable等接口。 ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。 ArrayList实现...
2020-04-18
集合
集合
閱讀全文
我的第一次博客
开始于2020年4月18日
2020-04-18
閱讀全文
上一頁
12 / 12
粘贴文本
全选文本
剪切文本
复制文本
站内搜索
必应搜索
新标签页打开
复制链接地址
复制图片
谷歌识图
找我吗?
示例博客
加入社区
暗黑模式
打印页面
阅读模式