嗯 今天看下 LinkedList,这个 最后会总结写 ArrayList 的区别吧 先看下构造函数 public LinkedList() { } public Linke...

嗯 今天看下 LinkedList,这个 最后会总结写 ArrayList 的区别吧 先看下构造函数 public LinkedList() { } public Linke...
1、前言说到ArrayList,就不得不说Array。光看名字,还以为这2个是同一个东西。其实不然。Array:指容量为固定的数组,常见的初始化方法如下: 在声明的时候直接声...
Redis在内存分配方面,仅仅是对系统的malloc/free做了一层简单的封装,然后加上了异常处理功能和内存统计功能。其实现主要在zmalloc.c和zmalloc.h文件...
1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况,因为hashmap并不是线程安全的,通常我们可以使用在ja...
之前创建线程的时候都是用的 newCachedThreadPoo,newFixedThreadPool,newScheduledThreadPool,newSingleThr...
阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可...
ConcurrentLinkedQueue的实现原理分析ConcurrentLinkedQueue介绍ConcurrentLinkedQueue是一个基于链接节点的无界线程安...
CopyOnWriteArrayList 功能简介CopyOnWriteArrayList 是juc中提供的 并发安全的 ArrayList, 我们拆分一下类名 "Copy"...
Fork/Join是什么? Fork/Join框架是Java7提供的并行执行任务框架,思想是将大任务分解成小任务,然后小任务又可以继续分解,然后每个小任务分别计算出结果再合并...
1. Semaphore 定义 Semaphore 主要用于限量控制并发执行代码的工具类, 其内部通过 一个 permit 来进行定义并发执行的数量, 其实可以理解为一个 限...
1. CyclicBarrier 定义 CyclicBarrier 内部是通过 ReeantrantLock, Condition 以及计数器count, 来控制线程的执行;...
CountDownLatch 定义CountDownLatch 可以理解为一个简单的计数器, 首先设定计数的值, 然后进行调用 await(PS: 调用 await 后, C...
1. ReentrantLock 定义 ReentrantLock 是 JUC 中提供的可中断, 可重入获取, 支持超时, 支持尝试获取锁 它主要有一下特点: 可重入, 一个...
1. AbstractQueuedSynchronizer 定义 AbstractQueuedSynchronizer 是JUC 中通过 Sync Queue(并发安全的 C...
Condition 定义Condition是JUC里面提供于控制线程释放锁, 然后进行等待其他获取锁的线程发送 signal 信号来进行唤醒的工具类.主要特点: Condit...
1. notify wait 如何使用? 今天我们要学习或者说分析的是 Object 类中的 wait notify 这两个方法,其实说是两个方法,这两个方法包括他们的重载方...
. ReentrantReadWriteLock 定义 ReentrantReadWriteLock: Reentrant(重入) Read (读) Write(写) Loc...
什么是CASCAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,经...
通过前面一章我们了解了synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用...
锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便...