java源码分析
文章平均质量分 80
特殊人类鉴定完毕
一起进入代码的世界
展开
-
原子类-AtomicBoolean类源码分析
常见的原子类:基本类: AtomicInteger、AtomicLong、AtomicBoolean;引用类型: AtomicReference、AtomicReference的ABA实例、AtomicStampedRerence、AtomicMarkableReference;数组类型: AtomicIntegerArray、AtomicLongArray、AtomicReferenceArra...原创 2018-06-05 22:39:55 · 461 阅读 · 0 评论 -
CountDownLatch源码分析
本节一起学习CountDownLatch类的源码1.类变量信息 private final Sync sync;2.构造函数 public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); this.sync ...原创 2018-06-07 23:04:32 · 159 阅读 · 0 评论 -
CopyOnWriteArrayList源码分析
本节一起学习CopyOnWriteArrayList类的源码1.首先看一下类的定义public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable2.类的变量 /** 重入锁用来保护所有的存取器 */ final ...原创 2018-06-07 11:15:46 · 137 阅读 · 0 评论 -
ArrayBlockingQueue类源码分析
本节学习ArrayBlockingQueue的源码:1.首先看类的定义public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable可以看到类继承了AbstractQueue且实现了接口Blo...原创 2018-06-06 23:21:05 · 125 阅读 · 0 评论 -
ReentrantLock源码分析
本节看一下ReentrantLock类的源码1.首先看一下类的定义public class ReentrantLock implements Lock, java.io.SerializableReentrantLock实现了Lock接口2.类的变量信息private final Sync sync;提供了同步机制3.构造函数 /** * Creates an instance o...原创 2018-06-06 22:21:09 · 107 阅读 · 0 评论 -
AbstractQueuedSynchronizer抽象类源码分析
上面几章节介绍了读写锁和Sync抽象类,这节介绍AQS如何控制同步的1.首先看一下类的定义public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable官方对类的描述为:提供了一个框架实现阻塞锁,依赖于同步器(信号...原创 2018-06-06 21:00:33 · 123 阅读 · 0 评论 -
读写锁-ReentrantReadWriteLock内部类Sync源码分析
首先看类的定义:abstract static class Sync extends AbstractQueuedSynchronizer Sync是抽象类,且继承了AbstractQueuedSynchronizer 而AbstractQueuedSynchronizer继承了AbstractOwnableSynchronizer 其中AbstractOwnableSynchr...原创 2018-06-06 11:55:53 · 354 阅读 · 0 评论 -
读写锁-ReentrantReadWriteLock源码解读
本节一起学习ReentrantReadWriteLock类的源码:1、首先,可以看到ReentrantReadWriteLock类实现了ReadWriteLock接口,public class ReentrantReadWriteLock implements ReadWriteLock, java.io.Serializable读写锁ReadWriteLock接口定义了两个方法:...原创 2018-06-05 23:39:32 · 196 阅读 · 0 评论 -
原子类-AtomicInteger类源码分析
本节介绍AtomicInteger类源码首先,AtomicInteger类继承了Number抽象类,Integer也继承了Number抽象类。内部维护了一个int数据,且被volatile修饰:private volatile int value;常用的方法:1.getAndSet /** * Atomically sets to the given value and retur...原创 2018-06-05 22:49:14 · 247 阅读 · 0 评论 -
Executors线程池源码分析
本节学习Executors类源码首先看一下常用的线程池的几种创建方式 /** * 创建一个线程池,该线程池重用固定数量的线程,在共享的无界队列中运行 */ public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nT...原创 2018-06-10 17:42:19 · 187 阅读 · 0 评论