12 2018 档案
摘要:问题 : 线程池中的 coreSize 和 maxSize 的作用分别是什么? 未执行的线程池存在在哪种数据类型,为什么使用这种类型的数据结构 ThreadPoolExecutor概述 ThreadPoolExecutor 下文简称 TPE ,我们使用它都是从Executror 这个类中的方法 : 1 public static ExecutorService ne...
阅读全文
摘要:阅读前阅读以下参考资料,文章图片或代码部分来自与参考资料 概览 一张图了解一下java锁. 注 : 阻塞将会切换线程,切换内核态和用户态,是比较大的性能开销 各种锁 为什么要设置锁的等级 jdk1.6对锁的实现引入了大量的优化,如自旋锁、适应性自旋锁、锁消除、锁粗化、偏向锁、轻量级锁等技术来减少锁操作的开销。锁主要存在四中状态,依次是:...
阅读全文
摘要:问题 : ArrayBlockQueue 和 LinkedBlockQueue 的区别 两者的实现又是怎么样的 应用场景 BlockingQueue 概述 blockingQueue 是个接口,从名字上看就可以知道它是个阻塞队列,里面定义了增删改查的方法。四种不同的方法用于不同的场景中使用: 1、抛出异常; 2、返回特殊值(null 或 true/false,取决于具体的操作)...
阅读全文
摘要:文章部分代码图片和总结来自参考资料 哈希和常用的方法 散列,从中文字面意思就很好理解了,分散排列,我们知道数组地址空间连续,查找快,增删慢,而链表,查找慢,增删快,两者结合起来形成散列表。如下图。 常见的hash 散列方法有 : 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。 数字分析法:提取关键字中取值...
阅读全文
摘要:文章部分图片来自参考资料 问题 : ThreadLocal 底层原理 ThreadLocal 需要注意什么问题,造成问题的原因是什么,防护措施是什么 ThreadLocal 概述 ThreadLocal 线程本地变量 ,是一个工具,可以让多个线程保持一个变量的副本,那么每个线程可以访问自己内部的副本变量。 Thr...
阅读全文
摘要:问题 : rwl 的底层实现是什么,应用场景是什么 读写锁 ReentrantReadWriteLock 首先我们来了解一下 ReentrantReadWriteLock 的作用是什么?和 ReentranLock 有什么区别?Reentrancy 英文的意思是可重入性。ReentrantReadWriteLock下文简称(rrwl) 下面总结来自 ...
阅读全文
摘要:文章代码分析和部分图片来自参考文章 问题 : CountDownLatch 和 CyclicBarrier 的区别 认识 CountDownLatch 分析这个类,首先了解一下它所可以实现的效果,然后再顺着这个源码的思路思考是不是和它实现的效果一样。下面的代码和图片可以说明 CountDownLatch (下文简称CDL)的工作过程。 ...
阅读全文
摘要:文章部分代码和照片来自参考资料 问题 : ConditionObject 的 await 和 signal 方法是如何实现的 ConditonObject ConditionObject 继承 Condition 这个接口, 看一下这个接口的注解说明 : Condition factors out the Object monitor ...
阅读全文
摘要:Hashmap 和 Concurrenthashmap Hashmap 不适合并发,应该使用ConcurrentHashMap . 这是很多人都知道的,但是为什么呢? 可以先看一下这两篇文章. JDK7与JDK8中HashMap的实现 和 谈谈HashMap线程不安全的体现. 由这两篇文章我们可以知道 : Hashmap 不适合并发的原因是当Hashmap扩...
阅读全文
摘要:文章部分图片和代码来自参考文章。 LockSupport 和 CLH 和 ConditionObject 阅读源码首先看一下注解 ,知道了大概的意思后,再进行分析。注释一开始就进行了概括。AQS的实现是基于FIFO等待队列的。 Provides a framework for implementing blocking locks and related s...
阅读全文
摘要:Thread 的状态 线程共有五种状态.分别是: (1)新建 (2)就绪 (3)运行 (4)阻塞 (5)死亡 ,下面列列举的状态需要结合状态示意图更好理解. 新建状态(New): 新创建了一个线程对象。 就绪状态(Runnable): 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于“可运行线程池”中,变得可运行,只等待获取CPU的使用权。即在就绪状态...
阅读全文
摘要:分页存储管理的基本概念 图一 图二 在开始学习的时候一直困惑在虚拟存储器到底作用是什么,为什么要这样子设计,后来看到了后面的工作流程才明白了为什么需要这样子设计. 可以这样子理解虚拟存储器作用,就以电脑启动为例,我的win7 安装在C盘,准确点时位于硬盘,当我开机的时候,CPU 肯定是调用我硬盘里的
阅读全文