
java源码阅读
默默努力的小程序员
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java并发源码:BlockingQueue
Java并发源码:BlockingQueue 阻塞队列是一个支持阻塞的插入方法和阻塞的移除方法的队列。方法抛出异常返回特殊值一直阻塞超时退出插入方法add(e)offer(e)put(e)offer(e,time,unit)移除方法remove(e)poll()take()poll(time,unit)检查方法element()pee...原创 2020-01-02 16:11:01 · 194 阅读 · 1 评论 -
Java并发源码:ConcurrentHashMap
Java并发源码:ConcurrentHashMap为什么要使用ConcurrentHashMap不安全的HashMap效率低下的HashTableConcurrentHashMap的锁分段技术可以有效提升并发访问率ConcurrentHashMap的结构 ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成的。 Jdk1.7 Segm...原创 2019-12-31 15:30:49 · 134 阅读 · 0 评论 -
java并发源码:Condition
java并发源码:Condition比对Object的监视器方法和Condition接口对比项ObjectCondition前置条件获取对象的锁调用Lock.lock()获取锁 ...原创 2019-12-25 15:05:05 · 154 阅读 · 0 评论 -
java并发源码:ReentrantReadWriteLock
java并发源码:ReentrantReadWriteLock结构可见ReentrantReadWriteLock实现了ReadWriteLock接口。ReadWriteLock接口定义了两个接口:Lock readLock()Lock writeLock() ReentrantLock是排他锁,在同一时刻只允许一个线程进行访问,而读写锁在同一时刻可以允许多个线程访问。但是在写线...原创 2019-12-23 16:05:11 · 126 阅读 · 0 评论 -
java并发源码:ReentrantLock
java并发源码:ReentrantLock结构可见ReentrantLock实现了Lock接口。locklock接口定义了五个方法。void lock();:获取锁。void lockInterruptibly() throws InterruptedException;:可中断的获取锁,该方法会响应中断。boolean tryLock();:尝试非阻塞的获取锁。boolean...原创 2019-12-12 14:57:43 · 134 阅读 · 0 评论 -
java并发源码:Synchronized
java并发源码:Synchronizedsynchronized加锁方式:修饰实例方法:锁是当前对象。修饰静态方法:锁是当前类的class对象。修饰代码块:锁是synchronized括号里配置的对象。 JVM基于进入和退出Monitor对象来实现方法同步和代码块同步的。代码块同步是用monitorenter 和monitorexit指令实现的。 public void tes...原创 2019-12-11 11:06:00 · 311 阅读 · 0 评论 -
java并发源码:volatile
java并发源码:volatilevolatile的定义: java编程语言运行线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排它锁单独获得这个变量。如果一个变量被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。(可见性)volatile的作用:1.保证变量在多线程中的可见性 为了提高处理速度,处理器不直接和内存进行通信,而...原创 2019-12-10 16:25:12 · 218 阅读 · 0 评论 -
java并发源码:AbstractQueuedSynchronizer
java并发源码:AbstractQueuedSynchronizer一、简介[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEGdDFSw-1575887227561) AQS(队列同步器)是用来构建锁或者其它同步组件的基础框架,它使用了一个int成员变量来标识同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。 AQS面向的是锁的实现者,它...原创 2019-12-09 18:29:32 · 180 阅读 · 0 评论 -
java 源码阅读(五)HashSet
java 源码阅读(五)HashSetHashSet是一个无序,允许空值,不允许重复值的集合类。非线程安全类。继承/实现构造函数private transient HashMap<E,Object> map;private static final Object PRESENT = new Object();HashSet()public HashSet() { ...原创 2019-09-29 15:32:20 · 102 阅读 · 0 评论 -
java 源码阅读(四)Vector
java 源码阅读(四)VectorVector是一种变长集合类,基于数组实现。ArrayList允许空值和重复元素。当往Vector中添加的元素数量超过底层数量时,会进行扩容。Vector实现了RandomAccess接口,所以可以保证在O(1)复杂度下完成随机查找操作。是一个线程安全类。继承/实现构造函数protected Object[] elementData;protecte...原创 2019-09-27 16:10:00 · 212 阅读 · 0 评论 -
java 源码阅读(三)LinkedList
java 源码阅读(三)LinkedListLinkedList底层采用的是双向链表结构,支持空值和重复值。无法向ArrayList那样进行扩容,存储元素时,需要额外的空间存储前驱和后继的引用。LinkedList在链表头部和尾部的插入效率比较高,但在指定位置进行插入时,效率一般。操作复杂度为O(N)。LinkedList是非线程安全的集合类。继承/实现构造函数transient int...原创 2019-09-26 16:01:45 · 131 阅读 · 0 评论 -
Java 源码阅读(二) ArrayList
java 源码阅读(二) ArrayListArrayList是一种变长集合类,基于数组实现。ArrayList允许空值和重复元素。当往ArrayList中添加的元素数量超过底层数量时,会进行扩容。ArrayList实现了RandomAccess接口,所以可以保证在O(1)复杂度下完成随机查找操作。是一个非线程安全类,并发环境下,会出现错误。实现/继承的类和接口extends Abstra...原创 2019-09-25 15:42:34 · 221 阅读 · 0 评论 -
java 源码阅读(一) String
java 源码阅读(一) StringString的属性:char[] value;int hash;String的重要方法intern()/*** Returns a canonical representation for the string object.* <p>* A pool of strings, initially emp...原创 2019-09-24 15:21:39 · 149 阅读 · 0 评论