抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

AQS简介 AbstractQueuedSynchronizer类简称为(AQS),它是实现同步器的基本组件,内部使用int类型来表示同步状态,并提供CAS方法来操作这个同步状态。如常用的ReentrantLock/Semaphore/CountDownLatch等等就是基于AQS实现的,用法是通过继承AQS实现其模版方法,然后将子类作为同步组件的内部类。 上图是该类的属性,AQS是一...

JUC简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。 在JUC并发包中包含有AtomicInteger,AtomicLong,...

java内存模型 java内存模型规定,将所有的变量都放在主内存,当线程使用变量时,会把该变量复制到线程的工作内存,因此线程读写变量操作的是自己工作内存中的变量。 下图是一个双核cpu的系统架构,每个核都有自己的控制器、运算器、一级缓存,其中控制器包含一组寄存器和操作控制器,运算器负责进行算术逻辑运算。在这个架构中cpu还共享一个二级缓存。 其中java内存模型里的线程工作内存对应...

线程基本概念 首先我们要先了解进程的基本概念,因为线程是进程中的一个实体。进程是操作系统中进行资源调度和调度的基本单位,线程则是进程的一个执行路径。 一个进程中包含多个线程,多个线程共享进程的堆和方法区资源,每个线程有独立的程序计数器和栈区域。 线程的三种创建方式类继承Thread12345678910111213public class TestNewThread { ...

HashMap简介 HashMap用来存放键值对,它基于哈希表的Map非同步接口实现,它继承了AbstractMap,实现了Map,Cloneable,Serializable等接口。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当...

LinkedList简介 LinkedList数据结构是双端链表,所以它支持高效的插入和删除操作,继承于AbstractSequentialList,实现了Serializable,List,Deque,Cloneable等接口 LinkedList继承AbstrctSequentialList,实现了List接口,他是一个链表队列,提供了相关的添加,删除,插入,遍历等操作 Link...

ArrayList简介 ArrayList数据结构是基于数组,与java原本数组不一样的是它能够动态增长,继承于AbstractList,实现了List,Serializable,RandomAccess,Cloneable等接口。 ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。 ArrayList实现...

开始于2020年4月18日