07 2020 档案

摘要:目录: ReentrantLock Semaphore CountDownLatch CyclicBarrier ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue CopyOnWriteArrayList 上一节吧AQS相关的知识点整理了下,这一节我 阅读全文
posted @ 2020-07-29 18:18 被猪附身的人 阅读(358) 评论(0) 推荐(0)
摘要:目录: 类图 submit方法(RunnableFuture接口newTaskFor方法) FutureTask类 声明。 核心属性:任务运行状态、核心属性。 构造器。 核心方法。 类图 上节课我们说到了execute方法,此方法虽然可以将任务让如线程池中运行,但却不能返回线程执行的结果,所以针对于 阅读全文
posted @ 2020-07-24 15:06 被猪附身的人 阅读(391) 评论(0) 推荐(0)
摘要:目录: execute() addWorker() execute() 1 public void execute(Runnable command) { 2 if (command == null) 3 throw new NullPointerException(); 4 /* 5 * 处理过程 阅读全文
posted @ 2020-07-23 15:20 被猪附身的人 阅读(320) 评论(0) 推荐(0)
摘要:目录: 位运算复习 线程池状态解析 位运算复习 原码:一个整数的绝对值转换成二进制,若此数为整数最高位为0,为负数最高位为1。 反码:除最高位的整数标记外,其它数均由0变1,1变0。 补码:反码+1。 注:计算机中不管正数还是负数都用二进制的补码表示,正数的原码、反码、补码都一样。 ———————— 阅读全文
posted @ 2020-07-21 16:44 被猪附身的人 阅读(197) 评论(0) 推荐(0)
摘要:目录: corePoolSize:核心线程数量 workQueue:阻塞队列 maximumPoolSize:最大线程数量 threadFactory:线程工厂 handler:拒绝、饱和策略 线程池执行原理图 1 public ThreadPoolExecutor(int corePoolSize 阅读全文
posted @ 2020-07-20 17:21 被猪附身的人 阅读(187) 评论(0) 推荐(0)
摘要:目录: ThreadPoolExecutor架构及类结构 工作线程Worker源码解析 总结 ThreadPoolExecutor架构及类结构 从上图来说ThreadPoolExecutor的锁同步是通过AQS来实现的。 注意:想要读懂ThreadPoolExecutor源码你先了解一下知识点: A 阅读全文
posted @ 2020-07-19 10:40 被猪附身的人 阅读(428) 评论(0) 推荐(0)
摘要:目录: CAS操作步骤 CAS极端情况下可能会导致的问题:ABA ABA问题的影响 JUC是如何解决ABA问题的 CAS操作步骤 CAS:compare and swap,即比较后再交换。它是一种无锁的算法,操作如下: 从内存获取V的值。 拿到旧的预期值A。 拿到要修改的值B。 当且仅当预期值A和内 阅读全文
posted @ 2020-07-16 22:52 被猪附身的人 阅读(422) 评论(0) 推荐(0)
摘要:目录: 原子操作是什么、什么是AtomicInteger JUC提供的原子类 AtomicInteger的使用 AtomicInteger源码简述 原子操作是什么、什么是AtomicInteger 原子操作,是一种不会被线程调度机制所打断的操作,这种操作一旦开始,就会一直运行到结束,中间不会有任何上 阅读全文
posted @ 2020-07-15 22:46 被猪附身的人 阅读(536) 评论(0) 推荐(0)
摘要:目录: 什么是Unsafe、为什么要有Unsafe Unsafe源码简述 什么是Unsafe、为什么要有Unsafe 我们知道Java和C、C++这种语言最大的差别就是Java不能直接操作内存,而C、C++可以;但其实在某些场景下我们为了进一步提升效率我们不得不直接操作内存。 而Unsafe就提供了 阅读全文
posted @ 2020-07-13 23:13 被猪附身的人 阅读(338) 评论(0) 推荐(0)
摘要:目录: 属性及内部类 构造函数 核心方法 属性及内部类 1、属性: 其实说到属性最终要的也无法就是一个hash数组桶,其它核心的属性都是大同小异。 1 transient volatile Node<K,V>[] table; 2、Node:ConcurrentHashMap存储数据的基本单元。 1 阅读全文
posted @ 2020-07-12 23:25 被猪附身的人 阅读(169) 评论(0) 推荐(0)
摘要:目录: 什么是ConcurrentHashMap 为什么要有ConcurrentHashMap ConcurrentHashMap源码解析 什么是ConcurrentHashMap ConcurrentHashMap,从名字上就可以看出它是一个处理并发情况的哈希表,和HashMap非常像,你可以把它 阅读全文
posted @ 2020-07-12 16:32 被猪附身的人 阅读(173) 评论(0) 推荐(0)
摘要:目录: 学习准备 类核心属性、内部类、构造函数介绍 哈希冲突(哈希碰撞) put()方法源码分析 resize()方法源码分析 学习准备 在阅读Java8 HashMap前你需要掌握数组、链表、二叉树、哈希表等知识。 我这里来简单的介绍一下它们: 数组:是通过一组连续的存储单元来存储数据的一种结构, 阅读全文
posted @ 2020-07-11 12:18 被猪附身的人 阅读(182) 评论(0) 推荐(0)
摘要:1、&:与运算符 二进制比较,都为1则为1,否则为0 0=非=false,1=是=true & 类比 &&,当&&的所有条件都满足是才为true,故推到出上述结果。 2、|:或运算符 二进制比较,只要有一个为1就是1,否则为0 与&类似,| 类比 ||。 3、~:非运算符 二进制结果倒置,为0则1, 阅读全文
posted @ 2020-07-09 17:40 被猪附身的人 阅读(179) 评论(0) 推荐(0)
摘要:目录: HashMap结构 HashMap方法简述 HashMap结构 在Java7中我们可以更具HashMap的table属性及Entry内部类观察出,其底层是基于数组实现,并在发生Hash冲突的时候用链表解决,将相同hash值的key组层一个链表维护。 1 transient Entry<K,V 阅读全文
posted @ 2020-07-06 23:05 被猪附身的人 阅读(162) 评论(0) 推荐(0)
摘要:目录: AQS整体介绍 AQS类图 AQS实现 AQS总结: AQS及其实现类已经学完了,今天我就来按照自己的理解简单的总结下AQS。 首先AQS全称为AbstractQueuedSynchronize,从含义上可以看出它是队列同步器,是用于构建锁或其它同步组件的基础框架。 AQS整体介绍: AQS 阅读全文
posted @ 2020-07-05 18:50 被猪附身的人 阅读(276) 评论(0) 推荐(0)
摘要:目录: CopyOnWriteArrayList是什么 为什么要有CopyOnWriteArrayList 如何使用CopyOnWriteArrayList CopyOnWriteArrayList源码分析 CopyOnWriteArrayList是什么 CopyOnWriteArrayList是一 阅读全文
posted @ 2020-07-02 14:26 被猪附身的人 阅读(151) 评论(0) 推荐(0)