JDK源码系列
文章平均质量分 88
追逐的_梦
这个作者很懒,什么都没留下…
展开
-
面试官问你是否了解JUC包?
JUC源码简析线程安全性:多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。如何保证一个类的线程安全:变量不共享变量在线程间隔离。例如:局部变量、ThreadLocal等。共享不可变共享可变加同步乐观锁对数据的安全性持乐观的态度,认为该数据不会被别人改变,就算改变了再选择"原谅"就好了。代表:CAS悲观锁对数据的安全性持悲观的态度,认为共享的数据必定会被改变,所以在使用该数据时必须强占。代表:synchronized、Reentra原创 2021-06-21 14:59:36 · 371 阅读 · 0 评论 -
这么简单的CountDownLatch你竟然说你不会?
文章目录前言一、CountDownLatch源码总览二、关键方法源码分析countDown()await()CountDownLatch如何使用总结前言CountDownLatch顾名思义是一个倒计数闩锁,这次我们来玩点新东西,如果你不知道这个类怎么用,我们来通过源码来看看这个类有什么用!先看源码再使用!是谁给我的自信?竟然先看源码再使用,而不是先使用再研究源码?因为CountDownLatch源码真的是 超!级!简!单!接下来让我们一起来看看吧!一、CountDownLatch源码总览看!原创 2021-04-28 09:36:53 · 137 阅读 · 2 评论 -
CountDownLatch是(算)什么东西?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码原创 2021-01-26 10:53:00 · 405 阅读 · 3 评论 -
线程池原理ThreadPoolExecutor
文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言上一篇已经介绍完了ThreadPoolExecutor结构体系,也对FutureTask做了详细的分析,这次将对ThreadPoolExecutor源码进行详细分析,面试过程中问到的线程池原理和重要参数也都是在这个类中,作为线程池的核心实现类,学习多线程无论如何都要把这个类给掌握了。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决原创 2021-01-25 12:20:02 · 138 阅读 · 1 评论 -
线程池原理FutureTask,你懂了吗?
文章目录前言一、ThreadPoolExecutor结构体系二、使用步骤1.引入库2.读入数据总结前言线程池在项目中使用的还是比较多的,那为什要用线程池呢?线程池顾名思义,是放线程的池子,主要有以下优势:复用线程可以降低系统的资源消耗。通过已有线程来处理请求,可以提高系统响应效率。方便管理线程,保证系统的稳定性,防止并发量大而导致无限制创建线程产生OOM等问题。提供更强大的功能,如延时定时线程池。下面我通过分析ThreadPoolExecutor类的源码来介绍线程池原理。一、Thre原创 2020-12-24 12:38:57 · 444 阅读 · 1 评论 -
ReentrantLock源码详解
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例原创 2020-11-27 14:01:27 · 347 阅读 · 2 评论 -
多线程并发的开端-AQS
文章目录前言一、AQS是什么?二、源码解析1.引入库2.读入数据总结前言多线程并发在java中有着举足轻重的地位。在日常的增删查改项目中可能接触的比较少,可能就线程池接触的多一点,但线程池实现原理中肯定也有AQS的影子。要想理解多线程并发,AQS这个核心类是绕不过的。那么AQS是个什么东西?是如何实现的呢?我们一起来看看。一、AQS是什么?它的全称是AbstractQueuedSynchronizer,是juc包下的一个核心类。它提供了用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器原创 2020-11-25 10:36:55 · 184 阅读 · 1 评论 -
LinkedHashMap比HashMap多了啥?
文章目录前言一、LinkedHashMap数据结构二、源码分析1.主要属性2.构造函数2.关键方法1、afterNodeAccess(Node e)2、afterNodeInsertion(boolean evict)总结前言继承自HashMap,LinkedHashMap = HashMap + LinkedList,话不多说,直接看源码。一、LinkedHashMap数据结构双链表结构:单向链表 + 双向链表。如下图所示:再来看看源码数据结构static class Entry<原创 2020-11-23 22:02:29 · 509 阅读 · 6 评论 -
jdk1.8的HashMap源码解析
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、HashMap是什么?二、HashMap源码解析1.主要属性2.构造方法3.构造方法总结前言HashMap在工作中是最常用的一种数据结构,那么深入了解它的工作原理也成了必不可少的一环,而且大部分面试都会问到HashMap底层原理,学习它益处多多。一、HashMap是什么?HashMap是基于数组+单向链表+红黑树等基本数据结构组成的一种存储key-value键值对的数据结构。基于hash操作查找速度非常快。使用原创 2020-11-15 22:00:03 · 271 阅读 · 2 评论